mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 16:05:18 +00:00
chore: minimized application and updated documentation
This commit is contained in:
parent
ba27dc70e4
commit
7cc41b541a
1517
CHANGELOG.md
1517
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
# Code of Conduct - Spotube
|
# Code of Conduct - SpoTube
|
||||||
|
|
||||||
## Our Pledge
|
## Our Pledge
|
||||||
|
|
||||||
@ -18,20 +18,20 @@ community include:
|
|||||||
* Being respectful of differing opinions, viewpoints, and experiences
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
* Giving and gracefully accepting constructive feedback
|
* Giving and gracefully accepting constructive feedback
|
||||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
and learning from the experience
|
and learning from the experience
|
||||||
* Focusing on what is best not just for us as individuals, but for the
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
overall community
|
overall community
|
||||||
|
|
||||||
Examples of unacceptable behavior include:
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
* The use of sexualized language or imagery, and sexual attention or
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
advances
|
advances
|
||||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
* Public or private harassment
|
* Public or private harassment
|
||||||
* Publishing others' private information, such as a physical or email
|
* Publishing others' private information, such as a physical or email
|
||||||
address, without their explicit permission
|
address, without their explicit permission
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
professional setting
|
professional setting
|
||||||
|
|
||||||
## Our Responsibilities
|
## Our Responsibilities
|
||||||
|
|
||||||
|
198
CONTRIBUTION.md
198
CONTRIBUTION.md
@ -1,31 +1,40 @@
|
|||||||
# Contributing to Spotube
|
# Contributing to Spotube
|
||||||
|
|
||||||
First off, thanks for taking the time to contribute! ❤️
|
First off, thanks for taking the time to contribute!
|
||||||
|
|
||||||
All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉
|
All types of contributions are encouraged and valued.
|
||||||
|
See the [Table of Contents](#table-of-contents) for different ways
|
||||||
|
to help and details about how this project handles them.
|
||||||
|
Please make sure to read the relevant section before making
|
||||||
|
your contribution.
|
||||||
|
It will make it a lot easier for us maintainers and smooth out the experience for all involved.
|
||||||
|
The
|
||||||
|
community looks forward to your contributions.
|
||||||
|
|
||||||
> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:
|
> And if you like the project, but just don't have time to contribute, that's fine.
|
||||||
|
> There are other easy ways to support
|
||||||
|
> the project and show your appreciation, which we would also be thrilled about:
|
||||||
>
|
>
|
||||||
> - Star the project
|
> - Star the project
|
||||||
> - Tweet about it
|
> - Tweet about it
|
||||||
> - Refer this project in your project's readme
|
> - Refer this project to your project's readme
|
||||||
> - Mention the project at local meetups and tell your friends/colleagues
|
> - Mention the project at local meetups and tell your friends/colleagues
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
- [Contributing to Spotube](#contributing-to-spotube)
|
- [Contributing to Spotube](#contributing-to-spotube)
|
||||||
- [Table of Contents](#table-of-contents)
|
- [Table of Contents](#table-of-contents)
|
||||||
- [Code of Conduct](#code-of-conduct)
|
- [Code of Conduct](#code-of-conduct)
|
||||||
- [I Have a Question](#i-have-a-question)
|
- [I Have a Question](#i-have-a-question)
|
||||||
- [I Want To Contribute](#i-want-to-contribute)
|
- [I Want To Contribute](#i-want-to-contribute)
|
||||||
- [Reporting Bugs](#reporting-bugs)
|
- [Reporting Bugs](#reporting-bugs)
|
||||||
- [Before Submitting a Bug Report](#before-submitting-a-bug-report)
|
- [Before Submitting a Bug Report](#before-submitting-a-bug-report)
|
||||||
- [How Do I Submit a Good Bug Report?](#how-do-i-submit-a-good-bug-report)
|
- [How Do I Submit a Good Bug Report?](#how-do-i-submit-a-good-bug-report)
|
||||||
- [Suggesting Enhancements](#suggesting-enhancements)
|
- [Suggesting Enhancements](#suggesting-enhancements)
|
||||||
- [Before Submitting an Enhancement](#before-submitting-an-enhancement)
|
- [Before Submitting an Enhancement](#before-submitting-an-enhancement)
|
||||||
- [How Do I Submit a Good Enhancement Suggestion?](#how-do-i-submit-a-good-enhancement-suggestion)
|
- [How Do I Submit a Good Enhancement Suggestion?](#how-do-i-submit-a-good-enhancement-suggestion)
|
||||||
- [Your First Code Contribution](#your-first-code-contribution)
|
- [Your First Code Contribution](#your-first-code-contribution)
|
||||||
- [Submit Translations](#submit-translations)
|
- [Submit Translations](#submit-translations)
|
||||||
|
|
||||||
## Code of Conduct
|
## Code of Conduct
|
||||||
|
|
||||||
@ -36,13 +45,18 @@ to krtirtho@gmail.com.
|
|||||||
|
|
||||||
## I Have a Question
|
## I Have a Question
|
||||||
|
|
||||||
> If you want to ask a question, we assume that you have read the available [Documentation](https://github.com/KRTirtho/spotube#readme).
|
> If you want to ask a question, we assume that you have read the
|
||||||
|
> available [Documentation](https://github.com/KRTirtho/spotube#readme).
|
||||||
|
|
||||||
Before you ask a question, it is best to search for existing [Issues](https://github.com/KRTirtho/spotube/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.
|
Before you ask a question, it is best to search for existing [Issues](https://github.com/KRTirtho/spotube/issues) that
|
||||||
|
might help you.
|
||||||
|
In case you have found a suitable issue and still need clarification, you can write your question in
|
||||||
|
this issue.
|
||||||
|
It is also advisable to search the internet for answers first.
|
||||||
|
|
||||||
If you then still feel the need to ask a question and need clarification, we recommend the following:
|
If you then still feel the need to ask a question and need clarification, we recommend the following:
|
||||||
|
|
||||||
- Open an [Discussion](https://github.com/KRTirtho/spotube/discussions/new) with the question label.
|
- Open a [Discussion](https://github.com/KRTirtho/spotube/discussions/new) with the question label.
|
||||||
- Provide as much context as you can about what you're running into.
|
- Provide as much context as you can about what you're running into.
|
||||||
- Provide project and platform versions (flutter, dart, pub, linux etc..), depending on what seems relevant.
|
- Provide project and platform versions (flutter, dart, pub, linux etc..), depending on what seems relevant.
|
||||||
|
|
||||||
@ -52,18 +66,28 @@ We will then take care of the issue as soon as possible.
|
|||||||
|
|
||||||
> ### Legal Notice
|
> ### Legal Notice
|
||||||
>
|
>
|
||||||
> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.
|
> When contributing to this project, you must agree that you have authored 100% of the content, that you have the
|
||||||
|
> necessary rights to the content and that the content you contribute may be provided under the project license.
|
||||||
|
|
||||||
### Reporting Bugs
|
### Reporting Bugs
|
||||||
|
|
||||||
#### Before Submitting a Bug Report
|
#### Before Submitting a Bug Report
|
||||||
|
|
||||||
A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible.
|
A good bug report shouldn't leave others needing to chase you up for more information.
|
||||||
|
Therefore, we ask you to
|
||||||
|
investigate carefully, collect information and describe the issue in detail in your report.
|
||||||
|
Please complete the
|
||||||
|
following steps in advance to help us fix any potential bug as fast as possible.
|
||||||
|
|
||||||
- Make sure that you are using the latest version.
|
- Make sure that you are using the latest version.
|
||||||
- Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (Make sure that you have read the [documentation](https://github.com/KRTirtho/spotube#readme). If you are looking for support, you might want to check [this section](#i-have-a-question)).
|
- Determine if your bug is really a bug and not an error on your side, e.g., using incompatible environment
|
||||||
- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/KRTirtho/spotubeissues?q=label%3Abug).
|
components/versions (Make sure that you have read the [documentation](https://github.com/KRTirtho/spotube#readme). If
|
||||||
- Also make sure to search the internet (including Stack Overflow) to see if users outside of the GitHub community have discussed the issue.
|
you are looking for support, you might want to check [this section](#i-have-a-question)).
|
||||||
|
- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there
|
||||||
|
is not already a bug report existing for your bug or error in
|
||||||
|
the [bug tracker](https://github.com/KRTirtho/spotubeissues?q=label%3Abug).
|
||||||
|
- Also make sure to search the internet (including Stack Overflow) to see if users outside the GitHub community have
|
||||||
|
discussed the issue.
|
||||||
- Collect information about the bug:
|
- Collect information about the bug:
|
||||||
- Stack trace (Traceback)
|
- Stack trace (Traceback)
|
||||||
- OS, Platform and Version (Windows, Linux, macOS, x86, ARM)
|
- OS, Platform and Version (Windows, Linux, macOS, x86, ARM)
|
||||||
@ -73,33 +97,57 @@ A good bug report shouldn't leave others needing to chase you up for more inform
|
|||||||
|
|
||||||
#### How Do I Submit a Good Bug Report?
|
#### How Do I Submit a Good Bug Report?
|
||||||
|
|
||||||
> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to
|
> You must never report security related issues, vulnerabilities or bugs, including sensitive information to the issue
|
||||||
|
> tracker, or elsewhere in public.
|
||||||
|
> Instead, sensitive bugs must be sent by email to
|
||||||
|
|
||||||
We use GitHub issues to track bugs and errors. If you run into an issue with the project:
|
We use GitHub issues to track bugs and errors. If you run into an issue with the project:
|
||||||
|
|
||||||
- Open an [Issue](https://github.com/KRTirtho/spotube/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.)
|
<list>
|
||||||
- Explain the behavior you would expect and the actual behavior.
|
<li><p>Open an <a href="https://github.com/KRTirtho/spotube/issues/new">Issue</a>.
|
||||||
- Please provide as much context as possible and describe the _reproduction steps_ that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case.
|
(Since we can't be sure at this point whether it is a
|
||||||
- Provide the information you collected in the previous section.
|
bug or not, we ask you not to talk about a bug yet and not to label the issue.)</p></li>
|
||||||
|
<li><p>Explain the behavior you would expect and the actual behavior.</p></li>
|
||||||
|
<li><p>Please provide as much context as possible and describe the <emphasis>reproduction steps</emphasis> that someone else can follow to
|
||||||
|
recreate the issue on their own.
|
||||||
|
This usually includes your code.
|
||||||
|
For good bug reports, you should isolate the problem
|
||||||
|
and create a reduced test case.</p></li>
|
||||||
|
<li><p>Provide the information you collected in the previous section.</p></li>
|
||||||
|
</list>
|
||||||
|
|
||||||
Once it's filed:
|
Once it's filed:
|
||||||
|
|
||||||
- The project team will label the issue accordingly.
|
- The project team will label the issue accordingly.
|
||||||
- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced.
|
- A team member will try to reproduce the issue with your provided steps.
|
||||||
- If the team is able to reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution).
|
If there are no reproduction steps or no
|
||||||
|
obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`.
|
||||||
|
Bugs
|
||||||
|
with the `needs-repro` tag will not be addressed until they are reproduced.
|
||||||
|
- If the team is able to reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as
|
||||||
|
`critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution).
|
||||||
|
|
||||||
### Suggesting Enhancements
|
### Suggesting Enhancements
|
||||||
|
|
||||||
This section guides you through submitting an enhancement suggestion for Spotube, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.
|
This section guides you through submitting an enhancement suggestion for Spotube, **including completely new features
|
||||||
|
and minor improvements to existing functionality**.
|
||||||
|
Following these guidelines will help maintainers and the community
|
||||||
|
to understand your suggestion and find related suggestions.
|
||||||
|
|
||||||
<!-- omit in toc -->
|
<!-- omit in toc -->
|
||||||
|
|
||||||
#### Before Submitting an Enhancement
|
#### Before Submitting an Enhancement
|
||||||
|
|
||||||
- Make sure that you are using the latest version.
|
<list>
|
||||||
- Read the [documentation](https://github.com/KRTirtho/spotube#readme) carefully and find out if the functionality is already covered, maybe by an individual configuration.
|
<li><p>Make sure that you are using the latest version.</p></li>
|
||||||
- Perform a [search](https://github.com/KRTirtho/spotube/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
|
<li><p>Read the <a href="https://github.com/KRTirtho/spotube#readme">documentation</a> carefully and find out if the functionality is
|
||||||
- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset
|
already covered, maybe by an individual configuration.</p></li>
|
||||||
|
<li><p>Perform a <a href="https://github.com/KRTirtho/spotube/issues">search</a> to see if the enhancement has already been suggested.
|
||||||
|
If it has, add a comment to the existing issue instead of opening a new one.</p></li>
|
||||||
|
<li><p>Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to
|
||||||
|
convince the project's developers of the merits of this feature. Keep in mind that we want features that will be
|
||||||
|
useful to the majority of our users and not just a small subset</p></li>
|
||||||
|
</list>
|
||||||
|
|
||||||
<!-- omit in toc -->
|
<!-- omit in toc -->
|
||||||
|
|
||||||
@ -109,9 +157,19 @@ Enhancement suggestions are tracked as [GitHub issues](https://github.com/KRTirt
|
|||||||
|
|
||||||
- Use a **clear and descriptive title** for the issue to identify the suggestion.
|
- Use a **clear and descriptive title** for the issue to identify the suggestion.
|
||||||
- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.
|
- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.
|
||||||
- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you.
|
- **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
|
||||||
- You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part which the suggestion is related to. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. <!-- this should only be included if the project has a GUI -->
|
At this point,
|
||||||
- **Explain why this enhancement would be useful** to most Spotube users. You may also want to point out the other projects that solved it better and which could serve as inspiration.
|
you can also tell which alternatives do not work for you.
|
||||||
|
- You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part
|
||||||
|
which the suggestion is related to.
|
||||||
|
You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS
|
||||||
|
and Windows, and [this tool](https://github.com/colinkeenan/silentcast)
|
||||||
|
or [this tool](https://github.com/GNOME/byzanz) on
|
||||||
|
Linux.
|
||||||
|
<!-- this should only be included if the project has a GUI -->
|
||||||
|
- **Explain why this enhancement would be useful** to most Spotube users.
|
||||||
|
You may also want to point out the other
|
||||||
|
projects that solved it better and which could serve as inspiration.
|
||||||
|
|
||||||
### Your First Code Contribution
|
### Your First Code Contribution
|
||||||
|
|
||||||
@ -121,46 +179,52 @@ Do the following:
|
|||||||
|
|
||||||
- Download the latest Flutter SDK (>=3.16.0) & enable desktop support
|
- Download the latest Flutter SDK (>=3.16.0) & enable desktop support
|
||||||
- Install Development dependencies in linux
|
- Install Development dependencies in linux
|
||||||
- Debian (>=12/Bookworm)/Ubuntu
|
- Debian (>=12/Bookworm)/Ubuntu
|
||||||
```bash
|
```bash
|
||||||
$ apt-get install mpv libmpv-dev libappindicator3-1 gir1.2-appindicator3-0.1 libappindicator3-dev libsecret-1-0 libjsoncpp25 libsecret-1-dev libjsoncpp-dev libnotify-bin libnotify-dev avahi-daemon avahi-discover avahi-utils libnss-mdns mdns-scan libwebkit2gtk-4.1-0 libwebkit2gtk-4.1-dev libsoup-3.0-0 libsoup-3.0-dev
|
$ apt-get install mpv libmpv-dev libappindicator3-1 gir1.2-appindicator3-0.1 libappindicator3-dev libsecret-1-0 libjsoncpp25 libsecret-1-dev libjsoncpp-dev libnotify-bin libnotify-dev avahi-daemon avahi-discover avahi-utils libnss-mdns mdns-scan libwebkit2gtk-4.1-0 libwebkit2gtk-4.1-dev libsoup-3.0-0 libsoup-3.0-dev
|
||||||
```
|
```
|
||||||
- Use `libjsoncpp1` instead of `libjsoncpp25` (for Ubuntu < 22.04)
|
- Use `libjsoncpp1` instead of `libjsoncpp25` (for Ubuntu < 22.04)
|
||||||
- Arch/Manjaro
|
- Arch/Manjaro
|
||||||
```bash
|
```bash
|
||||||
yay -S mpv libappindicator-gtk3 libsecret jsoncpp libnotify avahi nss-mdns mdns-scan webkit2gtk-4.1 libsoup3
|
yay -S mpv libappindicator-gtk3 libsecret jsoncpp libnotify avahi nss-mdns mdns-scan webkit2gtk-4.1 libsoup3
|
||||||
```
|
```
|
||||||
- Fedora
|
- Fedora
|
||||||
```bash
|
```bash
|
||||||
dnf install mpv mpv-devel libappindicator-gtk3 libappindicator-gtk3-devel libsecret libsecret-devel jsoncpp jsoncpp-devel libnotify libnotify-devel avahi mdns-scan nss-mdns webkit2gtk4.1 webkit2gtk4.1-devel libsoup3 libsoup3-devel
|
dnf install mpv mpv-devel libappindicator-gtk3 libappindicator-gtk3-devel libsecret libsecret-devel jsoncpp jsoncpp-devel libnotify libnotify-devel avahi mdns-scan nss-mdns webkit2gtk4.1 webkit2gtk4.1-devel libsoup3 libsoup3-devel
|
||||||
```
|
```
|
||||||
- Clone the Repo
|
- Clone the Repo
|
||||||
- Create a `.env` in root of the project following the `.env.example` template
|
- Create a `.env` in root of the project following the `.env.example` template
|
||||||
- Now run the following to bootstrap the project
|
- Now run the following to bootstrap the project
|
||||||
```bash
|
```bash
|
||||||
flutter pub get && dart run build_runner build --delete-conflicting-outputs --enable-experiment=records,patterns
|
flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs --enable-experiment=records,patterns
|
||||||
```
|
```
|
||||||
- Finally run these following commands in the root of the project to start the Spotube Locally
|
- Finally, run these following commands in the root of the project to start the Spotube Locally
|
||||||
```bash
|
```bash
|
||||||
flutter run -d <window|macos|linux|(<android-device-id>)>
|
flutter run # -d [device]
|
||||||
```
|
```
|
||||||
|
|
||||||
Do debugging/testing/build etc then submit to us with PR against the development branch (dev) & we'll review your code
|
Do `debugging/testing/build` etc. then submit to us with PR against the `dev` branch, and we'll review your code
|
||||||
|
|
||||||
|
|
||||||
### Submit Translations
|
### Submit Translations
|
||||||
|
|
||||||
Make sure you're familiar with [Flutter localization](https://docs.flutter.dev/ui/accessibility-and-localization/internationalization). Then, you can start translating the app by following these steps:
|
Make sure you're familiar
|
||||||
|
with [Flutter localization](https://docs.flutter.dev/ui/accessibility-and-localization/internationalization).
|
||||||
|
Then, you
|
||||||
|
can start translating the app by following these steps:
|
||||||
|
|
||||||
- Do all the steps in [Your First Code Contribution](#your-first-code-contribution)
|
- Do all the steps in [Your First Code Contribution](#your-first-code-contribution)
|
||||||
- Make sure application starts in debug mode
|
- Make sure the application starts in debug mode
|
||||||
- Now, in `lib/l10n/app_<2-letter code of your language>.arb` (create if not exists) add necessary translations
|
- Now, in `lib/l10n/app_<2-letter code of your language>.arb` (create if not exists) add the necessary translations
|
||||||
> (You can follow the `lib/l10n/app_en.arb` for reference)
|
> (You can follow the `lib/l10n/app_en.arb` for reference)
|
||||||
- If you're adding missing translations, you can check the `/untranslated_messages.json` file to see which messages are missing in your native locale
|
- If you're adding missing translations, you can check the `/untranslated_messages.json` file to see which messages are
|
||||||
- If you added entirely new translations:
|
missing in your native locale
|
||||||
- Add `const Locale('<2-letter language code>', '<2-letter ISO country code>')` in `lib/l10n/l10n.dart`'s `static final all = [...]` variable
|
- If you add entirely new translations:
|
||||||
- Uncomment the Map entry of your locale from `lib/collections/language_codes.dart`'s `static final Map isoLangs = {` variable
|
- Add `const Locale('<2-letter language code>', '<2-letter ISO country code>')` in `lib/l10n/l10n.dart`'s
|
||||||
- Now restart (hot restart if running already) the app in debug mode & go to "Settings" > "Language" & see if your locale shows up
|
`static final all = [...]` variable
|
||||||
- If it does, select it & see if the app is translated properly
|
- Uncomment the Map entry of your locale from `lib/collections/language_codes.dart`'s
|
||||||
- Now git commit the changes & push
|
`static final Map isoLangs = {` variable
|
||||||
|
- Now restart (hot restart if running already) the app in debug mode & go to "Settings" > "Language" & see if your
|
||||||
|
locale shows up
|
||||||
|
- If it does, select it and see if the app is translated properly
|
||||||
|
- Now git commit changes and push
|
||||||
- Finally, submit a PR against the development branch (dev) & we'll review your code
|
- Finally, submit a PR against the development branch (dev) & we'll review your code
|
||||||
|
@ -1,59 +1,80 @@
|
|||||||
**Privacy Policy**
|
**Privacy Policy**
|
||||||
|
|
||||||
Kingkor Roy Tirtho built the Spotube app as an Open Source app. This SERVICE is provided by Kingkor Roy Tirtho at no cost and is intended for use as is.
|
Kingkor Roy Tirtho built the Spotube app as an Open Source app. This SERVICE is provided by Kingkor Roy Tirtho at no
|
||||||
|
cost and is intended for use as is.
|
||||||
|
|
||||||
This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.
|
This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal
|
||||||
|
Information if anyone decided to use my Service.
|
||||||
|
|
||||||
If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy.
|
If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The
|
||||||
|
Personal Information that I collect is used for providing and improving the Service. I will not use or share your
|
||||||
|
information with anyone except as described in this Privacy Policy.
|
||||||
|
|
||||||
The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which are accessible at Spotube unless otherwise defined in this Privacy Policy.
|
The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which are accessible at
|
||||||
|
Spotube unless otherwise defined in this Privacy Policy.
|
||||||
|
|
||||||
**Information Collection and Use**
|
**Information Collection and Use**
|
||||||
|
|
||||||
For a better experience, while using our Service, I may require you to provide us with certain personally identifiable information. The information that I request will be retained on your device and is not collected by me in any way.
|
For a better experience, while using our Service, I may require you to provide us with certain personally identifiable
|
||||||
|
information. The information that I request will be retained on your device and is not collected by me in any way.
|
||||||
|
|
||||||
The app does use third-party services that may collect information used to identify you.
|
The app does use third-party services that may collect information used to identify you.
|
||||||
|
|
||||||
Link to the privacy policy of third-party service providers used by the app
|
Link to the privacy policy of third-party service providers used by the app
|
||||||
|
|
||||||
* [Google Play Services](https://www.google.com/policies/privacy/)
|
* [Google Play Services](https://www.google.com/policies/privacy/)
|
||||||
|
|
||||||
**Log Data**
|
**Log Data**
|
||||||
|
|
||||||
Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing my Service, the time and date of your use of the Service, and other statistics. But none of this info leaves your device. It's stored in a log-file on your device only accessible to you.
|
Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system
|
||||||
|
version, the configuration of the app when utilizing my Service, the time and date of your use of the Service, and other
|
||||||
|
statistics. But none of this info leaves your device. It's stored in a log-file on your device only accessible to you.
|
||||||
|
|
||||||
**Cookies**
|
**Cookies**
|
||||||
|
|
||||||
Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.
|
Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to
|
||||||
|
your browser from the websites that you visit and are stored on your device's internal memory.
|
||||||
|
|
||||||
This Service does not use these “cookies” explicitly. How ever the some services may use cookies for their cause (e.g. improvement) but you can deny them once asked
|
This Service does not use these “cookies” explicitly. How ever the some services may use cookies for their cause (e.g.
|
||||||
|
improvement) but you can deny them once asked
|
||||||
|
|
||||||
**Service Providers**
|
**Service Providers**
|
||||||
|
|
||||||
I may employ third-party companies and individuals due to the following reasons:
|
I may employ third-party companies and individuals due to the following reasons:
|
||||||
|
|
||||||
* To facilitate our Service;
|
* To facilitate our Service;
|
||||||
* To provide the Service on our behalf;
|
* To provide the Service on our behalf;
|
||||||
* To perform Service-related services; or
|
* To perform Service-related services; or
|
||||||
* To assist us in analyzing how our Service is used.
|
* To assist us in analyzing how our Service is used.
|
||||||
|
|
||||||
I want to inform users of this Service that these third parties have access to their Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.
|
I want to inform users of this Service that these third parties have access to their Personal Information. The reason is
|
||||||
|
to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information
|
||||||
|
for any other purpose.
|
||||||
|
|
||||||
**Security**
|
**Security**
|
||||||
|
|
||||||
I value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee its absolute security.
|
I value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means
|
||||||
|
of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100%
|
||||||
|
secure and reliable, and I cannot guarantee its absolute security.
|
||||||
|
|
||||||
**Links to Other Sites**
|
**Links to Other Sites**
|
||||||
|
|
||||||
This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of these websites. I have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.
|
This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site.
|
||||||
|
Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of
|
||||||
|
these websites. I have no control over and assume no responsibility for the content, privacy policies, or practices of
|
||||||
|
any third-party sites or services.
|
||||||
|
|
||||||
**Children’s Privacy**
|
**Children’s Privacy**
|
||||||
|
|
||||||
These Services do not address anyone under the age of 13. I do not knowingly collect personally identifiable information from children under 13 years of age. In the case I discover that a child under 13 has provided me with personal information, I immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact me so that I will be able to do the necessary actions.
|
These Services do not address anyone under the age of 13. I do not knowingly collect personally identifiable information
|
||||||
|
from children under 13 years of age. In the case I discover that a child under 13 has provided me with personal
|
||||||
|
information, I immediately delete this from our servers. If you are a parent or guardian and you are aware that your
|
||||||
|
child has provided us with personal information, please contact me so that I will be able to do the necessary actions.
|
||||||
|
|
||||||
**Changes to This Privacy Policy**
|
**Changes to This Privacy Policy**
|
||||||
|
|
||||||
I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page.
|
I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any
|
||||||
|
changes. I will notify you of any changes by posting the new Privacy Policy on this page.
|
||||||
|
|
||||||
This policy is effective as of 2022-04-01
|
This policy is effective as of 2022-04-01
|
||||||
|
|
||||||
|
470
README.md
470
README.md
@ -1,11 +1,11 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<img width="600" src="assets/spotube_banner.png" alt="Spotube Logo">
|
<img width="124" src="assets/spotube-logo-stable-notWallpaper.png" alt="Spotube Logo">
|
||||||
|
|
||||||
An open source, cross-platform Spotify client compatible across multiple platforms<br />
|
An open source, cross-platform Spotify client compatible across multiple platforms<br />
|
||||||
utilizing Spotify's data API and YouTube, Piped.video or JioSaavn as an audio source,<br />
|
utilizing Spotify's data API and YouTube, piped.video or JioSaavn as an audio source,<br />
|
||||||
eliminating the need for Spotify Premium
|
eliminating the need for Spotify Premium
|
||||||
|
|
||||||
Btw it's not just another Electron app 😉
|
Btw it's not just another Electron app
|
||||||
|
|
||||||
<a href="https://spotube.krtirtho.dev"><img alt="Visit the website" height="56" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/documentation/website_vector.svg"></a>
|
<a href="https://spotube.krtirtho.dev"><img alt="Visit the website" height="56" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/documentation/website_vector.svg"></a>
|
||||||
<a href="https://discord.gg/uJ94vxB6vg"><img alt="Discord Server" height="56" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/social/discord-plural_vector.svg"></a>
|
<a href="https://discord.gg/uJ94vxB6vg"><img alt="Discord Server" height="56" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/social/discord-plural_vector.svg"></a>
|
||||||
@ -19,33 +19,35 @@ Btw it's not just another Electron app 😉
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||

|
[//]: # (![SpoTube Desktop]())
|
||||||
|
|
||||||

|
[//]: # ()
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## 🌃 Features
|
## Features
|
||||||
|
|
||||||
- 🚫 No ads, thanks to the use of public & free Spotify and YT Music APIs¹
|
- No ads, thanks to the use of public & free Spotify and YT Music APIs¹
|
||||||
- ⬇️ Freely downloadable tracks
|
- Freely downloadable tracks
|
||||||
- 🖥️ 📱 Cross-platform support
|
- Cross-platform support
|
||||||
- 🪶 Small size & less data usage
|
- Small size & fewer data usage
|
||||||
- 🕵️ Anonymous/guest login
|
- Anonymous/guest login
|
||||||
- 🕒 Time synced lyrics
|
- Time synced lyrics
|
||||||
- ✋ No telemetry, diagnostics or user data collection
|
- No telemetry, diagnostics or user data collection
|
||||||
- 🚀 Native performance
|
- Native performance
|
||||||
- 📖 Open source/libre software
|
- Open source/libre software
|
||||||
- 🔉 Playback control is done locally, not on the server
|
- Playback control is done locally, not on the server
|
||||||
|
|
||||||
**¹** It is still **recommended** to support creators by engaging with their YouTube channels/Spotify tracks (or preferably by buying their merch/concert tickets/physical media).
|
**¹** It is still **recommended** to support creators by engaging with their YouTube channels/Spotify tracks (or
|
||||||
|
preferably by buying their merch/concert tickets/physical media).
|
||||||
|
|
||||||
### ❌ Unsupported features
|
### Unsupported features
|
||||||
|
|
||||||
- 🗣️ **Spotify Shows & Podcasts:** Shows and Podcasts will <ins>**never be supported**</ins> because the audio tracks are <ins>_only_</ins> available on Spotify and accessing them would require Spotify Premium.
|
- **Spotify Shows & Podcasts:** Shows and Podcasts will <ins>**never be supported**</ins> because the audio tracks
|
||||||
- 🎧 **Spotify Listen Along:** [Coming soon!](https://github.com/KRTirtho/spotube/issues/8)
|
are <ins>_only_</ins> available on Spotify and accessing them would require Spotify Premium.
|
||||||
|
- **Spotify Listen Along:** [Coming soon!](https://github.com/KRTirtho/spotube/issues/8)
|
||||||
|
|
||||||
## 📜 ⬇️ Installation guide
|
## Installation guide
|
||||||
|
|
||||||
New versions usually release every 3-4 months.<br />
|
New versions usually release every 3-4 months.<br />
|
||||||
This handy table lists all the methods you can use to install Spotube:
|
This handy table lists all the methods you can use to install Spotube:
|
||||||
@ -176,17 +178,18 @@ brew install --cask spotube
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
### 🔄 Nightly Builds
|
### Nightly Builds
|
||||||
|
|
||||||
Grab the latest nightly builds of Spotube [from the GitHub Releases](https://github.com/KRTirtho/spotube/releases/tag/nightly).
|
Grab the latest nightly builds of
|
||||||
|
Spotube [from the GitHub Releases](https://github.com/KRTirtho/spotube/releases/tag/nightly).
|
||||||
|
|
||||||
## 🕳️ Building from source
|
## Building from source
|
||||||
|
|
||||||
<a href="https://github.com/KRTirtho/spotube/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/KRTirtho/spotube/spotube-release-binary.yml?+label=Build%20Status"></a>
|
<a href="https://github.com/KRTirtho/spotube/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/KRTirtho/spotube/spotube-release-binary.yml?+label=Build%20Status"></a>
|
||||||
|
|
||||||
You can compile Spotube's source code by [following these instructions](CONTRIBUTION.md#your-first-code-contribution).
|
You can compile SpoTube's source code by [following these instructions](CONTRIBUTION.md#your-first-code-contribution).
|
||||||
|
|
||||||
## 👥 The Spotube team
|
## The Spotube team
|
||||||
|
|
||||||
- [Kingkor Roy Tirtho](https://github.com/KRTirtho) - The Founder, Maintainer and Lead Developer
|
- [Kingkor Roy Tirtho](https://github.com/KRTirtho) - The Founder, Maintainer and Lead Developer
|
||||||
- [RaptaG](https://github.com/RaptaG) - The GitHub Moderator and Community Manager
|
- [RaptaG](https://github.com/RaptaG) - The GitHub Moderator and Community Manager
|
||||||
@ -195,159 +198,292 @@ You can compile Spotube's source code by [following these instructions](CONTRIBU
|
|||||||
- [Piotr Rogowski](https://github.com/karniv00l) - The MacOS Developer
|
- [Piotr Rogowski](https://github.com/karniv00l) - The MacOS Developer
|
||||||
- [Rusty Apple](https://github.com/RustyApple) - The Mysterious Unknown Guy
|
- [Rusty Apple](https://github.com/RustyApple) - The Mysterious Unknown Guy
|
||||||
|
|
||||||
## 💼 License
|
## License
|
||||||
|
|
||||||
Spotube is open source and licensed under the [BSD-4-Clause](/LICENSE) License.
|
Spotube is open source and licensed under the [BSD-4-Clause](/LICENSE) License.
|
||||||
|
|
||||||
If you are concerned, you can [read the reason of choosing this license](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p).
|
If you are concerned, you
|
||||||
|
can [read the reason of choosing this license](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p).
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>
|
<summary>
|
||||||
<h2><code>[Click to show]</code> 🙏 Services/Package/Plugin Credits</h2>
|
<h2><code>[Click to show]</code></h2>
|
||||||
</summary>
|
</summary>
|
||||||
|
|
||||||
|
## Services/Package/Plugin Credits
|
||||||
|
|
||||||
### Services
|
### Services
|
||||||
|
|
||||||
1. [Flutter](https://flutter.dev) - Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase
|
1. [Flutter](https://flutter.dev) - Flutter transforms the app development process. Build, test, and deploy beautiful
|
||||||
1. [MPV](https://mpv.io) - mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.
|
mobile, web, desktop, and embedded apps from a single codebase
|
||||||
1. [Spotify API](https://developer.spotify.com/documentation/web-api) - The Spotify Web API is a RESTful API that provides access to Spotify data
|
2. [MPV](https://mpv.io) - mpv is a free (as in freedom) media player for the command line. It supports a wide variety
|
||||||
1. [Piped](https://piped-docs.kavin.rocks/) - Piped is a privacy friendly alternative YouTube frontend, which is efficient and scalable by design.
|
of media file formats, audio and video codecs, and subtitle types.
|
||||||
1. [Invidious](https://invidious.io/) - Invidious is an open source alternative front-end to YouTube.
|
3. [Spotify API](https://developer.spotify.com/documentation/web-api) - The Spotify Web API is a REST API that
|
||||||
1. [YouTube](https://youtube.com/) - YouTube is an American online video-sharing platform headquartered in San Bruno, California. Three former PayPal employees—Chad Hurley, Steve Chen, and Jawed Karim—created the service in February 2005
|
provides access to Spotify data
|
||||||
1. [yt-dlp](https://github.com/yt-dlp/yt-dlp) - A feature-rich command-line audio/video downloader
|
4. [Piped](https://piped-docs.kavin.rocks/) - Piped is a privacy-friendly alternative YouTube frontend, which is
|
||||||
1. [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) - NewPipe's core library for extracting data from streaming sites
|
efficient and scalable by design.
|
||||||
1. [JioSaavn](https://www.jiosaavn.com) - JioSaavn is an Indian online music streaming service and a digital distributor of Bollywood, English and other regional Indian music across the world. Since it was founded in 2007 as Saavn, the company has acquired rights to over 5 crore (50 million) music tracks in 15 languages
|
5. [Invidious](https://invidious.io/) - Invidious is an open source alternative front-end to YouTube.
|
||||||
1. [SongLink](https://song.link) - SongLink is a free smart link service that helps you share music with your audience. It's a one-stop-shop for creating smart links for music, podcasts, and other audio content
|
6. [YouTube](https://youtube.com/) - YouTube is an American online video-sharing platform headquartered in San Bruno,
|
||||||
1. [LRCLib](https://lrclib.net/) - A public synced lyric API
|
California. Three former PayPal employees—Chad Hurley, Steve Chen, and Jawed Karim—created the service in February
|
||||||
1. [Linux](https://www.linux.org) - Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution
|
2005
|
||||||
1. [AUR](https://aur.archlinux.org) - AUR stands for Arch User Repository. It is a community-driven repository for Arch-based Linux distributions users
|
1. [yt-dlp](https://github.com/yt-dlp/yt-dlp) - A feature-rich command-line audio/video downloader
|
||||||
1. [Flatpak](https://flatpak.org) - Flatpak is a utility for software deployment and package management for Linux
|
1. [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) - NewPipe's core library for extracting data
|
||||||
1. [SponsorBlock](https://sponsor.ajay.app) - SponsorBlock is an open-source crowdsourced browser extension and open API for skipping sponsor segments in YouTube videos.
|
from streaming sites
|
||||||
1. [Inno Setup](https://jrsoftware.org/isinfo.php) - Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan
|
7. [JioSaavn](https://www.jiosaavn.com) - JioSaavn is an Indian online music streaming service and a digital distributor
|
||||||
1. [F-Droid](https://f-droid.org) - F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device
|
of Bollywood, English and other regional Indian music across the world. Since it was founded in 2007 as Saavn, the
|
||||||
1. [LastFM](https://last.fm) - Last.fm is a music streaming and discovery platform that helps users discover and share new music. It tracks users' music listening habits across many devices and platforms.
|
company has acquired rights to over 5 corer (50 million) music tracks in 15 languages
|
||||||
|
8. [SongLink](https://song.link) - SongLink is a free smart link service that helps you share music with your audience.
|
||||||
|
It's a one-stop-shop for creating smart links for music, podcasts, and other audio content
|
||||||
|
9. [LRCLib](https://lrclib.net/) - A public synced lyric API
|
||||||
|
10. [Linux](https://www.linux.org) - Linux is a family of open-source Unix-like operating systems based on the Linux
|
||||||
|
kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically
|
||||||
|
packaged in a Linux distribution
|
||||||
|
11. [AUR](https://aur.archlinux.org) - AUR stands for Arch User Repository. It is a community-driven repository for
|
||||||
|
Arch-based Linux distributions users
|
||||||
|
12. [Flatpak](https://flatpak.org) - Flatpak is a utility for software deployment and package management for Linux
|
||||||
|
13. [SponsorBlock](https://sponsor.ajay.app) - SponsorBlock is an open-source crowd-sourced browser extension and open API
|
||||||
|
for skipping sponsor segments in YouTube videos.
|
||||||
|
14. [Inno Setup](https://jrsoftware.org/isinfo.php) - Inno Setup is a free installer for Windows programs by Jordan
|
||||||
|
Russell and Martijn Laan
|
||||||
|
15. [F-Droid](https://f-droid.org) - F-Droid is an installable catalogue of FOSS (Free and Open Source Software)
|
||||||
|
applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your
|
||||||
|
device
|
||||||
|
16. [LastFM](https://last.fm) - Last.fm is a music streaming and discovery platform that helps users discover and share
|
||||||
|
new music. It tracks users' music listening habits across many devices and platforms.
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
1. [app_links](https://github.com/llfbandit/app_links) - Android App Links, Deep Links, iOs Universal Links and Custom URL schemes handler for Flutter (desktop included).
|
1. [app_links](https://github.com/llfbandit/app_links) - Android App Links, Deep Links, iOs Universal Links and Custom
|
||||||
1. [args](https://pub.dev/packages/args) - Library for defining parsers for parsing raw command-line arguments into a set of options and values using GNU and POSIX style options.
|
URL schemes handler for Flutter (desktop included).
|
||||||
1. [async](https://pub.dev/packages/async) - Utility functions and classes related to the 'dart:async' library.
|
2. [args](https://pub.dev/packages/args) - Library for defining parsers for parsing raw command-line arguments into a
|
||||||
1. [audio_service](https://pub.dev/packages/audio_service) - Flutter plugin to play audio in the background while the screen is off.
|
set of options and values using GNU and POSIX style options.
|
||||||
1. [audio_service_mpris](https://github.com/bdrazhzhov/audio-service-mpris) - audio_service platform interface supporting Media Player Remote Interfacing Specification.
|
3. [async](https://pub.dev/packages/async) - Utility functions and classes related to the 'dart:async' library.
|
||||||
1. [audio_session](https://github.com/ryanheise/audio_session) - Sets the iOS audio session category and Android audio attributes for your app, and manages your app's audio focus, mixing and ducking behaviour.
|
4. [audio_service](https://pub.dev/packages/audio_service) - Flutter plugin to play audio in the background while the
|
||||||
1. [auto_route](https://github.com/Milad-Akarie/auto_route_library) - AutoRoute is a declarative routing solution, where everything needed for navigation is automatically generated for you.
|
screen is off.
|
||||||
1. [auto_size_text](https://github.com/leisim/auto_size_text) - Flutter widget that automatically resizes text to fit perfectly within its bounds.
|
5. [audio_service_mpris](https://github.com/bdrazhzhov/audio-service-mpris) - audio_service platform interface
|
||||||
1. [bonsoir](https://bonsoir.skyost.eu) - A Zeroconf library that allows you to discover network services and to broadcast your own. Based on Apple Bonjour and Android NSD.
|
supporting Media Player Remote Interfacing Specification.
|
||||||
1. [cached_network_image](https://github.com/Baseflow/flutter_cached_network_image) - Flutter library to load and cache network images. Can also be used with placeholder and error widgets.
|
6. [audio_session](https://github.com/ryanheise/audio_session) - Sets the iOS audio session category and Android audio
|
||||||
1. [connectivity_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin for discovering the state of the network (WiFi & mobile/cellular) connectivity on Android and iOS.
|
attributes for your app, and manages your app's audio focus, mixing and ducking behaviour.
|
||||||
1. [device_info_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin providing detailed information about the device (make, model, etc.), and Android or iOS version the app is running on.
|
7. [auto_route](https://github.com/Milad-Akarie/auto_route_library) - AutoRoute is a declarative routing solution, where
|
||||||
1. [dio](https://github.com/cfug/dio) - A powerful HTTP networking package,supports Interceptors,Aborting and canceling a request,Custom adapters, Transformers, etc.
|
everything needed for navigation is automatically generated for you.
|
||||||
1. [drift](https://drift.simonbinder.eu/) - Drift is a reactive library to store relational data in Dart and Flutter applications.
|
8. [auto_size_text](https://github.com/leisim/auto_size_text) - Flutter widget that automatically resizes text to fit
|
||||||
1. [duration](https://github.com/desktop-dart/duration) - Utilities to make working with 'Duration's easier. Formats duration in human readable form and also parses duration in human readable form to Dart's Duration.
|
perfectly within its bounds.
|
||||||
1. [encrypt](https://pub.dev/packages/encrypt) - A set of high-level APIs over PointyCastle for two-way cryptography.
|
9. [bonsoir](https://bonsoir.skyost.eu) - A Zeroconf library that allows you to discover network services and to
|
||||||
1. [envied](https://github.com/petercinibulk/envied) - Explicitly reads environment variables into a dart file from a .env file for more security and faster start up times.
|
broadcast your own. Based on Apple Bonjour and Android NSD.
|
||||||
1. [file_picker](https://github.com/miguelpruivo/plugins_flutter_file_picker) - A package that allows you to use a native file explorer to pick single or multiple absolute file paths, with extension filtering support.
|
10. [cached_network_image](https://github.com/Baseflow/flutter_cached_network_image) - Flutter library to load and cache
|
||||||
1. [file_selector](https://pub.dev/packages/file_selector) - Flutter plugin for opening and saving files, or selecting directories, using native file selection UI.
|
network images. Can also be used with placeholder and error widgets.
|
||||||
1. [fluentui_system_icons](https://github.com/microsoft/fluentui-system-icons/tree/main) - Fluent UI System Icons are a collection of familiar, friendly and modern icons from Microsoft.
|
11. [connectivity_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin for discovering the state of
|
||||||
1. [flutter_cache_manager](https://github.com/Baseflow/flutter_cache_manager/tree/develop/flutter_cache_manager) - Generic cache manager for flutter. Saves web files on the storages of the device and saves the cache info using sqflite.
|
the network (Wi-Fi & mobile/cellular) connectivity on Android and iOS.
|
||||||
1. [flutter_discord_rpc](https://pub.dev/packages/flutter_discord_rpc) - Discord RPC support for Flutter desktop platforms
|
12. [device_info_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin providing detailed information
|
||||||
1. [flutter_displaymode](https://github.com/ajinasokan/flutter_displaymode) - A Flutter plugin to set display mode (resolution, refresh rate) on Android platform. Allows to enable high refresh rate on supported devices.
|
about the device (make, model, etc.), and Android or iOS version the app is running on.
|
||||||
1. [flutter_feather_icons](https://github.com/muj-programmer/flutter_feather_icons) - Feather is a collection of simply beautiful open source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency and usability.
|
13. [dio](https://github.com/cfug/dio) - A powerful HTTP networking package,supports Interceptors,Aborting and canceling
|
||||||
1. [flutter_form_builder](https://github.com/flutter-form-builder-ecosystem) - This package helps in creation of forms in Flutter by removing the boilerplate code, reusing validation, react to changes, and collect final user input.
|
a request,Custom adapters, Transformers, etc.
|
||||||
1. [flutter_hooks](https://github.com/rrousselGit/flutter_hooks) - A flutter implementation of React hooks. It adds a new kind of widget with enhanced code reuse.
|
14. [drift](https://drift.simonbinder.eu/) - Drift is a reactive library to store relational data in Dart and Flutter
|
||||||
1. [flutter_inappwebview](https://inappwebview.dev/) - A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window.
|
applications.
|
||||||
1. [flutter_native_splash](https://pub.dev/packages/flutter_native_splash) - Customize Flutter's default white native splash screen with background color and splash image. Supports dark mode, full screen, and more.
|
15. [duration](https://github.com/desktop-dart/duration) - Utilities to make working with 'Duration's easier. Formats
|
||||||
1. [flutter_riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
|
duration in human-readable form and also parses duration in human-readable form to Dart's Duration.
|
||||||
1. [flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage) - Flutter Secure Storage provides API to store data in secure storage. Keychain is used in iOS, KeyStore based solution is used in Android.
|
16. [encrypt](https://pub.dev/packages/encrypt) - A set of high-level APIs over PointyCastle for two-way cryptography.
|
||||||
1. [flutter_sharing_intent](https://github.com/bhagat-techind/flutter_sharing_intent.git) - A flutter plugin that allow flutter apps to receive photos, videos, text, urls or any other file types from another app.
|
17. [envied](https://github.com/petercinibulk/envied) - Explicitly reads environment variables into a dart file from a
|
||||||
1. [flutter_undraw](https://github.com/KRTirtho/flutter_undraw) - Undraw.co Illustrations for Flutter with customization options
|
.env file for more security and faster start up times.
|
||||||
1. [form_builder_validators](https://github.com/flutter-form-builder-ecosystem) - Form Builder Validators set of validators for FlutterFormBuilder. Provides common validators and a way to make your own.
|
18. [file_picker](https://github.com/miguelpruivo/plugins_flutter_file_picker) - A package that allows you to use a
|
||||||
1. [form_validator](https://github.com/TheMisir/form-validator) - Simplest form validation library for flutter's form field widgets
|
native file explorer to pick single or multiple absolute file paths, with extension filtering support.
|
||||||
1. [freezed_annotation](https://pub.dev/packages/freezed_annotation) - Annotations for the freezed code-generator. This package does nothing without freezed too.
|
19. [file_selector](https://pub.dev/packages/file_selector) - Flutter plugin for opening and saving files, or selecting
|
||||||
1. [fuzzywuzzy](https://github.com/sphericalkat/dart-fuzzywuzzy) - An implementation of the popular fuzzywuzzy package in Dart, to suit all your fuzzy string matching/searching needs!
|
directories, using native file selection UI.
|
||||||
1. [gap](https://github.com/letsar/gap) - Flutter widgets for easily adding gaps inside Flex widgets such as Columns and Rows or scrolling views.
|
20. [fluentui_system_icons](https://github.com/microsoft/fluentui-system-icons/tree/main) - Fluent UI System Icons are a
|
||||||
1. [google_fonts](https://pub.dev/packages/google_fonts) - A Flutter package to use fonts from fonts.google.com. Supports HTTP fetching, caching, and asset bundling.
|
collection of familiar, friendly and modern icons from Microsoft.
|
||||||
1. [home_widget](https://pub.dev/packages/home_widget) - A plugin to provide a common interface for creating HomeScreen Widgets for Android and iOS.
|
21. [flutter_cache_manager](https://github.com/Baseflow/flutter_cache_manager/tree/develop/flutter_cache_manager) -
|
||||||
1. [hooks_riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
|
Generic cache manager for flutter. Saves web files on the storages of the device and saves the cache info using
|
||||||
1. [html](https://pub.dev/packages/html) - APIs for parsing and manipulating HTML content outside the browser.
|
sqlite.
|
||||||
1. [html_unescape](https://github.com/filiph/html_unescape) - A small library for un-escaping HTML. Supports all Named Character References, Decimal Character References and Hexadecimal Character References.
|
22. [flutter_discord_rpc](https://pub.dev/packages/flutter_discord_rpc) - Discord RPC support for Flutter desktop
|
||||||
1. [http](https://pub.dev/packages/http) - A composable, multi-platform, Future-based API for HTTP requests.
|
platforms
|
||||||
1. [image_picker](https://pub.dev/packages/image_picker) - Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera.
|
23. [flutter_displaymode](https://github.com/ajinasokan/flutter_displaymode) - A Flutter plugin to set display mode (
|
||||||
1. [intl](https://pub.dev/packages/intl) - Contains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues.
|
resolution, refresh rate) on Android platform. Allows to enable high refresh rate on supported devices.
|
||||||
1. [invidious](https://pub.dev/packages/invidious) - Invidious API client for Dart and Flutter.
|
24. [flutter_feather_icons](https://github.com/muj-programmer/flutter_feather_icons) - Feather is a collection of simply
|
||||||
1. [jiosaavn](https://github.com/KRTirtho/jiosaavn) - Unofficial API client for jiosaavn.com
|
beautiful open source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency and
|
||||||
1. [json_annotation](https://pub.dev/packages/json_annotation) - Classes and helper functions that support JSON code generation via the `json_serializable` package.
|
usability.
|
||||||
1. [local_notifier](https://github.com/leanflutter/local_notifier) - This plugin allows Flutter desktop apps to displaying local notifications.
|
25. [flutter_form_builder](https://github.com/flutter-form-builder-ecosystem) - This package helps in creation of forms
|
||||||
1. [logger](https://pub.dev/packages/logger) - Small, easy to use and extensible logger which prints beautiful logs.
|
in Flutter by removing the boilerplate code, reusing validation, react to changes, and collect final user input.
|
||||||
1. [logging](https://pub.dev/packages/logging) - Provides APIs for debugging and error logging, similar to loggers in other languages, such as the Closure JS Logger and java.util.logging.Logger.
|
26. [flutter_hooks](https://github.com/rrousselGit/flutter_hooks) - A flutter implementation of React hooks. It adds a
|
||||||
1. [lrc](https://pub.dev/packages/lrc) - A Dart-only package that creates, parses, and handles LRC, which is a format that stores song lyrics.
|
new kind of widget with enhanced code reuse.
|
||||||
1. [media_kit](https://github.com/media-kit/media-kit) - A cross-platform video player & audio player for Flutter & Dart. Performant, stable, feature-proof & modular.
|
27. [flutter_inappwebview](https://inappwebview.dev/) - A Flutter plugin that allows you to add an inline webview, to use
|
||||||
1. [media_kit_libs_audio](https://github.com/media-kit/media-kit.git) - package:media_kit audio (only) playback native libraries for all platforms.
|
a headless webview, and to open an in-app browser window.
|
||||||
1. [metadata_god](https://pub.dev/packages/metadata_god) - Plugin for retrieving and writing audio tags/metadata from audio files
|
28. [flutter_native_splash](https://pub.dev/packages/flutter_native_splash) - Customize Flutter's default white native
|
||||||
1. [mime](https://pub.dev/packages/mime) - Utilities for handling media (MIME) types, including determining a type from a file extension and file contents.
|
splash screen with background color and splash image. Supports dark mode, full screen, and more.
|
||||||
1. [open_file](https://pub.dev/packages/open_file) - A plug-in that can call native APP to open files with string result in flutter, support iOS(UTI) / android(intent) / PC(ffi) / web(dart:html)
|
29. [flutter_riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with
|
||||||
1. [package_info_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android.
|
asynchronous code a breeze.
|
||||||
1. [palette_generator](https://pub.dev/packages/palette_generator) - Flutter package for generating palette colors from a source image.
|
30. [flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage) - Flutter Secure Storage provides API to
|
||||||
1. [path](https://pub.dev/packages/path) - A string-based path manipulation library. All of the path operations you know and love, with solid support for Windows, POSIX (Linux and Mac OS X), and the web.
|
store data in secure storage. Keychain is used in iOS, KeyStore based solution is used in Android.
|
||||||
1. [path_provider](https://pub.dev/packages/path_provider) - Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data directories.
|
31. [flutter_sharing_intent](https://github.com/bhagat-techind/flutter_sharing_intent.git) - A flutter plugin that allow
|
||||||
1. [permission_handler](https://pub.dev/packages/permission_handler) - Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
|
flutter apps to receive photos, videos, text, urls or any other file types from another app.
|
||||||
1. [piped_client](https://github.com/KRTirtho/piped_client) - API Client for piped.video
|
32. [flutter_undraw](https://github.com/KRTirtho/flutter_undraw) - Undraw.co Illustrations for Flutter with customization
|
||||||
1. [riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
|
options
|
||||||
1. [scroll_to_index](https://github.com/quire-io/scroll-to-index) - Scroll to a specific child of any scrollable widget in Flutter
|
33. [form_builder_validators](https://github.com/flutter-form-builder-ecosystem) - Form Builder Validators set of
|
||||||
1. [shadcn_flutter](https://github.com/sunarya-thito/shadcn_flutter) - Beautifully designed components from Shadcn/UI is now available for Flutter
|
validators for FlutterFormBuilder. Provides common validators and a way to make your own.
|
||||||
1. [shared_preferences](https://pub.dev/packages/shared_preferences) - Flutter plugin for reading and writing simple key-value pairs. Wraps NSUserDefaults on iOS and SharedPreferences on Android.
|
34. [form_validator](https://github.com/TheMisir/form-validator) - Simplest form validation library for flutter's form
|
||||||
1. [shelf](https://pub.dev/packages/shelf) - A model for web server middleware that encourages composition and easy reuse.
|
field widgets
|
||||||
1. [shelf_router](https://pub.dev/packages/shelf_router) - A convenient request router for the shelf web-framework, with support for URL-parameters, nested routers and routers generated from source annotations.
|
35. [freezed_annotation](https://pub.dev/packages/freezed_annotation) - Annotations for the freezed code-generator. This
|
||||||
1. [shelf_web_socket](https://pub.dev/packages/shelf_web_socket) - A shelf handler that wires up a listener for every connection.
|
package does nothing without freezed too.
|
||||||
1. [simple_icons](https://teavelopment.com/) - The Simple Icon pack available as Flutter Icons. Provides over 1500 Free SVG icons for popular brands.
|
36. [fuzzywuzzy](https://github.com/sphericalkat/dart-fuzzywuzzy) - An implementation of the popular fuzzywuzzy package
|
||||||
1. [skeletonizer](https://github.com/Milad-Akarie/skeletonizer) - Converts already built widgets into skeleton loaders with no extra effort.
|
in Dart, to suit all your fuzzy string matching/searching needs!
|
||||||
1. [sliding_up_panel](https://github.com/akshathjain/sliding_up_panel) - A draggable Flutter widget that makes implementing a SlidingUpPanel much easier!
|
37. [gap](https://github.com/letsar/gap) - Flutter widgets for easily adding gaps inside Flex widgets such as Columns and
|
||||||
1. [sliver_tools](https://github.com/Kavantix) - A set of useful sliver tools that are missing from the flutter framework
|
Rows or scrolling views.
|
||||||
1. [smtc_windows](https://pub.dev/packages/smtc_windows) - Windows `SystemMediaTransportControls` implementation for Flutter giving access to Windows OS Media Control applet.
|
38. [google_fonts](https://pub.dev/packages/google_fonts) - A Flutter package to use fonts from fonts.google.com.
|
||||||
1. [spotify](https://github.com/rinukkusu/spotify-dart) - An incomplete dart library for interfacing with the Spotify Web API.
|
Supports HTTP fetching, caching, and asset bundling.
|
||||||
1. [sqlite3](https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3) - Provides lightweight yet convenient bindings to SQLite by using dart:ffi
|
39. [home_widget](https://pub.dev/packages/home_widget) - A plugin to provide a common interface for creating HomeScreen
|
||||||
1. [sqlite3_flutter_libs](https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3_flutter_libs) - Flutter plugin to include native sqlite3 libraries with your app
|
Widgets for Android and iOS.
|
||||||
1. [stroke_text](https://github.com/MohamedAbd0/stroke_text) - A Simple Flutter plugin for applying stroke (border) style to a text widget
|
40. [hooks_riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with
|
||||||
1. [system_theme](https://github.com/bdlukaa/system_theme/tree/master/system_theme) - A plugin to get the current system theme info. Supports Android, Web, Windows, Linux and macOS
|
asynchronous code a breeze.
|
||||||
1. [test](https://pub.dev/packages/test) - A full featured library for writing and running Dart tests across platforms.
|
41. [html](https://pub.dev/packages/html) - APIs for parsing and manipulating HTML content outside the browser.
|
||||||
1. [timezone](https://pub.dev/packages/timezone) - Time zone database and time zone aware DateTime.
|
42. [html_unescape](https://github.com/filiph/html_unescape) - A small library for un-escaping HTML. Supports all Named
|
||||||
1. [titlebar_buttons](https://github.com/gtk-flutter/titlebar_buttons) - A package which provides most of the titlebar buttons from windows, linux and macos.
|
Character References, Decimal Character References and Hexadecimal Character References.
|
||||||
1. [tray_manager](https://github.com/leanflutter/tray_manager) - This plugin allows Flutter desktop apps to defines system tray.
|
43. [http](https://pub.dev/packages/http) - A composable, multi-platform, Future-based API for HTTP requests.
|
||||||
1. [url_launcher](https://pub.dev/packages/url_launcher) - Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.
|
44. [image_picker](https://pub.dev/packages/image_picker) - Flutter plugin for selecting images from the Android and iOS
|
||||||
1. [uuid](https://pub.dev/packages/uuid) - RFC4122 (v1, v4, v5, v6, v7, v8) UUID Generator and Parser for Dart
|
image library, and taking new pictures with the camera.
|
||||||
1. [version](https://github.com/dartninja/version) - Provides a simple class for parsing and comparing semantic versions as defined by http://semver.org/
|
45. [intl](https://pub.dev/packages/intl) - Contains code to deal with internationalized/localized messages, date and
|
||||||
1. [very_good_infinite_list](https://github.com/VeryGoodOpenSource/very_good_infinite_list) - A library for easily displaying paginated data, created by Very Good Ventures. Great for activity feeds, news feeds, and more.
|
number formatting and parsing, bidirectional text, and other internationalization issues.
|
||||||
1. [visibility_detector](https://pub.dev/packages/visibility_detector) - A widget that detects the visibility of its child and notifies a callback.
|
46. [invidious](https://pub.dev/packages/invidious) - Invidious API client for Dart and Flutter.
|
||||||
1. [web_socket_channel](https://pub.dev/packages/web_socket_channel) - StreamChannel wrappers for WebSockets. Provides a cross-platform WebSocketChannel API, a cross-platform implementation of that API that communicates over an underlying StreamChannel.
|
47. [jiosaavn](https://github.com/KRTirtho/jiosaavn) - Unofficial API client for jiosaavn.com
|
||||||
1. [wikipedia_api](https://github.com/KRTirtho/wikipedia_api) - Wikipedia API for dart and flutter
|
48. [json_annotation](https://pub.dev/packages/json_annotation) - Classes and helper functions that support JSON code
|
||||||
1. [win32_registry](https://pub.dev/packages/win32_registry) - A package that provides a friendly Dart API for accessing the Windows Registry.
|
generation via the `json_serializable` package.
|
||||||
1. [window_manager](https://github.com/leanflutter/window_manager) - This plugin allows Flutter desktop apps to resizing and repositioning the window.
|
49. [local_notifier](https://github.com/leanflutter/local_notifier) - This plugin allows Flutter desktop apps to
|
||||||
1. [youtube_explode_dart](https://github.com/Hexer10/youtube_explode_dart) - A port in dart of the youtube explode library. Supports several API functions without the need of Youtube API Key.
|
displaying local notifications.
|
||||||
1. [http_parser](https://pub.dev/packages/http_parser) - A platform-independent package for parsing and serializing HTTP formats.
|
50. [logger](https://pub.dev/packages/logger) - Small, easy to use and extensible logger which prints beautiful logs.
|
||||||
1. [collection](https://pub.dev/packages/collection) - Collections and utilities functions and classes related to collections.
|
51. [logging](https://pub.dev/packages/logging) - Provides APIs for debugging and error logging, similar to loggers in
|
||||||
1. [otp_util](https://github.com/dushiling) - otp_util is a dart package to generate and verify one-time passwords,it It provides two methods TOPT and HOTP.They are Time-based OTPs and Counter-based OTPs.
|
other languages, such as the Closure JS Logger and java.util.logging.Logger.
|
||||||
1. [dio_http2_adapter](https://github.com/cfug/dio) - An adapter that combines HTTP/2 and dio. Supports reusing connections, header compression, etc.
|
52. [lrc](https://pub.dev/packages/lrc) - A Dart-only package that creates, parses, and handles LRC, which is a format
|
||||||
1. [build_runner](https://pub.dev/packages/build_runner) - A build system for Dart code generation and modular compilation.
|
that stores song lyrics.
|
||||||
1. [envied_generator](https://github.com/petercinibulk/envied) - Generator for the Envied package. See https://pub.dev/packages/envied.
|
53. [media_kit](https://github.com/media-kit/media-kit) - A cross-platform video player & audio player for Flutter &
|
||||||
1. [flutter_gen_runner](https://github.com/FlutterGen/flutter_gen) - The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs.
|
Dart. Performant, stable, feature-proof & modular.
|
||||||
1. [flutter_launcher_icons](https://github.com/fluttercommunity/flutter_launcher_icons) - A package which simplifies the task of updating your Flutter app's launcher icon.
|
54. [media_kit_libs_audio](https://github.com/media-kit/media-kit.git) - package:media_kit audio (only) playback native
|
||||||
1. [flutter_lints](https://pub.dev/packages/flutter_lints) - Recommended lints for Flutter apps, packages, and plugins to encourage good coding practices.
|
libraries for all platforms.
|
||||||
1. [json_serializable](https://pub.dev/packages/json_serializable) - Automatically generate code for converting to and from JSON by annotating Dart classes.
|
55. [metadata_god](https://pub.dev/packages/metadata_god) - Plugin for retrieving and writing audio tags/metadata from
|
||||||
1. [freezed](https://pub.dev/packages/freezed) - Code generation for immutable classes that has a simple syntax/API without compromising on the features.
|
audio files
|
||||||
1. [process_run](https://github.com/tekartik/process_run.dart/blob/master/packages/process_run) - Process run helpers for Linux/Win/Mac and which like feature for finding executables.
|
56. [mime](https://pub.dev/packages/mime) - Utilities for handling media (MIME) types, including determining a type from
|
||||||
1. [pubspec_parse](https://pub.dev/packages/pubspec_parse) - Simple package for parsing pubspec.yaml files with a type-safe API and rich error reporting.
|
a file extension and file contents.
|
||||||
1. [pub_api_client](https://github.com/leoafarias/pub_api_client) - An API Client for Pub to interact with public package information.
|
57. [open_file](https://pub.dev/packages/open_file) - A plug-in that can call native APP to open files with string result
|
||||||
1. [xml](https://github.com/renggli/dart-xml) - A lightweight library for parsing, traversing, querying, transforming and building XML documents.
|
in flutter, support iOS(UTI) / android(intent) / PC(ffi) / web(dart:html)
|
||||||
1. [io](https://pub.dev/packages/io) - Utilities for the Dart VM Runtime including support for ANSI colors, file copying, and standard exit code values.
|
58. [package_info_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin for querying information about
|
||||||
1. [drift_dev](https://drift.simonbinder.eu/) - Dev-dependency for users of drift. Contains the generator and development tools.
|
the application package, such as CFBundleVersion on iOS or versionCode on Android.
|
||||||
1. [auto_route_generator](https://github.com/Milad-Akarie/auto_route_library) - AutoRoute is a declarative routing solution, where everything needed for navigation is automatically generated for you.
|
59. [palette_generator](https://pub.dev/packages/palette_generator) - Flutter package for generating palette colors from
|
||||||
1. [desktop_webview_window](https://github.com/MixinNetwork/flutter-plugins/tree/main/packages/desktop_webview_window) - Show a webview window on your flutter desktop application.
|
a source image.
|
||||||
1. [disable_battery_optimization](https://github.com/pvsvamsi/Disable-Battery-Optimizations) - Flutter plugin to check and disable battery optimizations. Also shows custom steps to disable the optimizations in devices like mi, xiaomi, samsung, oppo, huawei, oneplus etc
|
60. [path](https://pub.dev/packages/path) - A string-based path manipulation library. All the path operations you know
|
||||||
1. [draggable_scrollbar](https://github.com/fluttercommunity/flutter-draggable-scrollbar) - A scrollbar that can be dragged for quickly navigation through a vertical list. Additional option is showing label next to scrollthumb with information about current item.
|
and love, with solid support for Windows, POSIX (Linux and Mac OS X), and the web.
|
||||||
1. [flutter_broadcasts](https://github.com/KRTirtho/flutter_broadcasts.git) - A plugin for sending and receiving broadcasts with Android intents and iOS notifications.
|
61. [path_provider](https://pub.dev/packages/path_provider) - Flutter plugin for getting commonly used locations on host
|
||||||
1. [scrobblenaut](https://github.com/Nebulino/Scrobblenaut) - A deadly simple LastFM API Wrapper for Dart. So deadly simple that it's gonna hit the mark.
|
platform file systems, such as the temp and app data directories.
|
||||||
1. [yt_dlp_dart](https://github.com/KRTirtho/yt_dlp_dart.git) - yt-dlp binding in Dart
|
62. [permission_handler](https://pub.dev/packages/permission_handler) - Permission plugin for Flutter. This plugin
|
||||||
1. [flutter_new_pipe_extractor](https://github.com/KRTirtho/flutter_new_pipe_extractor) - NewPipeExtractor binding for Flutter (Android only)
|
provides a cross-platform (iOS, Android) API to request and check permissions.
|
||||||
|
63. [piped_client](https://github.com/KRTirtho/piped_client) - API Client for piped.video
|
||||||
|
64. [riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with
|
||||||
|
asynchronous code a breeze.
|
||||||
|
65. [scroll_to_index](https://github.com/quire-io/scroll-to-index) - Scroll to a specific child of any scrollable widget
|
||||||
|
in Flutter
|
||||||
|
66. [shadcn_flutter](https://github.com/sunarya-thito/shadcn_flutter) - Beautifully designed components from Shadcn/UI is
|
||||||
|
now available for Flutter
|
||||||
|
67. [shared_preferences](https://pub.dev/packages/shared_preferences) - Flutter plugin for reading and writing simple
|
||||||
|
key-value pairs. Wraps NSUserDefaults on iOS and SharedPreferences on Android.
|
||||||
|
68. [shelf](https://pub.dev/packages/shelf) - A model for web server middleware that encourages composition and easy
|
||||||
|
reuse.
|
||||||
|
69. [shelf_router](https://pub.dev/packages/shelf_router) - A convenient request router for the shelf web-framework, with
|
||||||
|
support for URL-parameters, nested routers and routers generated from source annotations.
|
||||||
|
70. [shelf_web_socket](https://pub.dev/packages/shelf_web_socket) - A shelf handler that wires up a listener for every
|
||||||
|
connection.
|
||||||
|
71. [simple_icons](https://teavelopment.com/) - The Simple Icon pack available as Flutter Icons. Provides over 1500 Free
|
||||||
|
SVG icons for popular brands.
|
||||||
|
72. [skeletonizer](https://github.com/Milad-Akarie/skeletonizer) - Converts already built widgets into skeleton loaders
|
||||||
|
with no extra effort.
|
||||||
|
73. [sliding_up_panel](https://github.com/akshathjain/sliding_up_panel) - A draggable Flutter widget that makes
|
||||||
|
implementing a SlidingUpPanel much easier!
|
||||||
|
74. [sliver_tools](https://github.com/Kavantix) - A set of useful sliver tools that are missing from the flutter
|
||||||
|
framework
|
||||||
|
75. [smtc_windows](https://pub.dev/packages/smtc_windows) - Windows `SystemMediaTransportControls` implementation for
|
||||||
|
Flutter giving access to Windows OS Media Control applet.
|
||||||
|
76. [spotify](https://github.com/rinukkusu/spotify-dart) - An incomplete dart library for interfacing with the Spotify
|
||||||
|
Web API.
|
||||||
|
77. [sqlite3](https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3) - Provides lightweight yet convenient bindings
|
||||||
|
to SQLite by using dart:ffi
|
||||||
|
78. [sqlite3_flutter_libs](https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3_flutter_libs) - Flutter plugin to
|
||||||
|
include native sqlite3 libraries with your app
|
||||||
|
79. [stroke_text](https://github.com/MohamedAbd0/stroke_text) - A Simple Flutter plugin for applying stroke (border)
|
||||||
|
style to a text widget
|
||||||
|
80. [system_theme](https://github.com/bdlukaa/system_theme/tree/master/system_theme) - A plugin to get the current system
|
||||||
|
theme info. Supports Android, Web, Windows, Linux and macOS
|
||||||
|
81. [test](https://pub.dev/packages/test) - A full featured library for writing and running Dart tests across platforms.
|
||||||
|
82. [timezone](https://pub.dev/packages/timezone) - Time zone database and time zone aware DateTime.
|
||||||
|
83. [titlebar_buttons](https://github.com/gtk-flutter/titlebar_buttons) - A package which provides most of the titlebar
|
||||||
|
buttons from windows, linux and macOS.
|
||||||
|
84. [tray_manager](https://github.com/leanflutter/tray_manager) - This plugin allows Flutter desktop apps to defines
|
||||||
|
system tray.
|
||||||
|
85. [url_launcher](https://pub.dev/packages/url_launcher) - Flutter plugin for launching a URL. Supports web, phone, SMS,
|
||||||
|
and email schemes.
|
||||||
|
86. [uuid](https://pub.dev/packages/uuid) - RFC4122 (v1, v4, v5, v6, v7, v8) UUID Generator and Parser for Dart
|
||||||
|
87. [version](https://github.com/dartninja/version) - Provides a simple class for parsing and comparing semantic versions
|
||||||
|
as defined by http://semver.org/
|
||||||
|
88. [very_good_infinite_list](https://github.com/VeryGoodOpenSource/very_good_infinite_list) - A library for easily
|
||||||
|
displaying paginated data, created by Very Good Ventures. Great for activity feeds, news feeds, and more.
|
||||||
|
89. [visibility_detector](https://pub.dev/packages/visibility_detector) - A widget that detects the visibility of its
|
||||||
|
child and notifies a callback.
|
||||||
|
90. [web_socket_channel](https://pub.dev/packages/web_socket_channel) - StreamChannel wrappers for WebSockets. Provides a
|
||||||
|
cross-platform WebSocketChannel API, a cross-platform implementation of that API that communicates over an underlying
|
||||||
|
StreamChannel.
|
||||||
|
91. [wikipedia_api](https://github.com/KRTirtho/wikipedia_api) - Wikipedia API for dart and flutter
|
||||||
|
92. [win32_registry](https://pub.dev/packages/win32_registry) - A package that provides a friendly Dart API for accessing
|
||||||
|
the Windows Registry.
|
||||||
|
93. [window_manager](https://github.com/leanflutter/window_manager) - This plugin allows Flutter desktop apps to resizing
|
||||||
|
and repositioning the window.
|
||||||
|
94. [youtube_explode_dart](https://github.com/Hexer10/youtube_explode_dart) - A port in dart of the youtube explode
|
||||||
|
library. Supports several API functions without the need of YouTube API Key.
|
||||||
|
95. [http_parser](https://pub.dev/packages/http_parser) - A platform-independent package for parsing and serializing HTTP
|
||||||
|
formats.
|
||||||
|
96. [collection](https://pub.dev/packages/collection) - Collections and utilities functions and classes related to
|
||||||
|
collections.
|
||||||
|
97. [otp_util](https://github.com/dushiling) - otp_util is a dart package to generate and verify one-time passwords, it
|
||||||
|
provides two methods TOPT and HOTP.They are Time-based OTPs and Counter-based OTPs.
|
||||||
|
98. [dio_http2_adapter](https://github.com/cfug/dio) - An adapter that combines HTTP/2 and dio. Supports reusing
|
||||||
|
connections, header compression, etc.
|
||||||
|
99. [build_runner](https://pub.dev/packages/build_runner) - A build system for Dart code generation and modular
|
||||||
|
compilation.
|
||||||
|
100. [envied_generator](https://github.com/petercinibulk/envied) - Generator for the Envied package.
|
||||||
|
See https://pub.dev/packages/envied.
|
||||||
|
101. [flutter_gen_runner](https://github.com/FlutterGen/flutter_gen) - The Flutter code generator for your assets, fonts,
|
||||||
|
colors, … — Get rid of all String-based APIs.
|
||||||
|
102. [flutter_launcher_icons](https://github.com/fluttercommunity/flutter_launcher_icons) - A package which simplifies the
|
||||||
|
task of updating your Flutter app's launcher icon.
|
||||||
|
103. [flutter_lints](https://pub.dev/packages/flutter_lints) - Recommended lints for Flutter apps, packages, and plugins
|
||||||
|
to encourage good coding practices.
|
||||||
|
104. [json_serializable](https://pub.dev/packages/json_serializable) - Automatically generate code for converting to and
|
||||||
|
from JSON by annotating Dart classes.
|
||||||
|
105. [freezed](https://pub.dev/packages/freezed) - Code generation for immutable classes that has a simple syntax/API
|
||||||
|
without compromising on the features.
|
||||||
|
106. [process_run](https://github.com/tekartik/process_run.dart/blob/master/packages/process_run) - Process run helpers
|
||||||
|
for Linux/Win/Mac and which like feature for finding executables.
|
||||||
|
107. [pubspec_parse](https://pub.dev/packages/pubspec_parse) - Simple package for parsing pubspec.yaml files with a
|
||||||
|
type-safe API and rich error reporting.
|
||||||
|
108. [pub_api_client](https://github.com/leoafarias/pub_api_client) - An API Client for Pub to interact with public
|
||||||
|
package information.
|
||||||
|
109. [xml](https://github.com/renggli/dart-xml) - A lightweight library for parsing, traversing, querying, transforming
|
||||||
|
and building XML documents.
|
||||||
|
110. [io](https://pub.dev/packages/io) - Utilities for the Dart VM Runtime including support for ANSI colors, file
|
||||||
|
copying, and standard exit code values.
|
||||||
|
111. [drift_dev](https://drift.simonbinder.eu/) - Dev-dependency for users of drift. Contains the generator and
|
||||||
|
development tools.
|
||||||
|
112. [auto_route_generator](https://github.com/Milad-Akarie/auto_route_library) - AutoRoute is a declarative routing
|
||||||
|
solution, where everything needed for navigation is automatically generated for you.
|
||||||
|
113. [desktop_webview_window](https://github.com/MixinNetwork/flutter-plugins/tree/main/packages/desktop_webview_window) -
|
||||||
|
Show a webview window on your flutter desktop application.
|
||||||
|
114. [disable_battery_optimization](https://github.com/pvsvamsi/Disable-Battery-Optimizations) - Flutter plugin to check
|
||||||
|
and disable battery optimizations. Also shows custom steps to disable the optimizations in devices like me, xiaomi,
|
||||||
|
samsung, oppo, huawei, oneplus etc
|
||||||
|
115. [draggable_scrollbar](https://github.com/fluttercommunity/flutter-draggable-scrollbar) - A scrollbar that can be
|
||||||
|
dragged for quickly navigation through a vertical list. Additional option is showing label next to scrollthumb with
|
||||||
|
information about current item.
|
||||||
|
116. [flutter_broadcasts](https://github.com/KRTirtho/flutter_broadcasts.git) - A plugin for sending and receiving
|
||||||
|
broadcasts with Android intents and iOS notifications.
|
||||||
|
117. [scrobblenaut](https://github.com/Nebulino/Scrobblenaut) - A deadly simple LastFM API Wrapper for Dart. So deadly
|
||||||
|
simple that it's going to hit the mark.
|
||||||
|
118. [yt_dlp_dart](https://github.com/KRTirtho/yt_dlp_dart.git) - yt-dlp binding in Dart
|
||||||
|
119. [flutter_new_pipe_extractor](https://github.com/KRTirtho/flutter_new_pipe_extractor) - NewPipeExtractor binding for
|
||||||
|
Flutter (Android only)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<div align="center"><h4>© Copyright Spotube 2024</h4></div>
|
<div align="center"><h4>© Copyright Spotube 2025</h4></div>
|
||||||
|
@ -136,8 +136,6 @@ class Assets {
|
|||||||
static const AssetGenImage albumPlaceholder =
|
static const AssetGenImage albumPlaceholder =
|
||||||
AssetGenImage('assets/album-placeholder.png');
|
AssetGenImage('assets/album-placeholder.png');
|
||||||
static const $AssetsBackgroundsGen backgrounds = $AssetsBackgroundsGen();
|
static const $AssetsBackgroundsGen backgrounds = $AssetsBackgroundsGen();
|
||||||
static const AssetGenImage bengaliPatternsBg =
|
|
||||||
AssetGenImage('assets/bengali-patterns-bg.jpg');
|
|
||||||
static const AssetGenImage branding = AssetGenImage('assets/branding.png');
|
static const AssetGenImage branding = AssetGenImage('assets/branding.png');
|
||||||
static const AssetGenImage emptyBox = AssetGenImage('assets/empty_box.png');
|
static const AssetGenImage emptyBox = AssetGenImage('assets/empty_box.png');
|
||||||
static const AssetGenImage invidious = AssetGenImage('assets/invidious.jpg');
|
static const AssetGenImage invidious = AssetGenImage('assets/invidious.jpg');
|
||||||
@ -148,38 +146,14 @@ class Assets {
|
|||||||
static const $AssetsPatternsGen patterns = $AssetsPatternsGen();
|
static const $AssetsPatternsGen patterns = $AssetsPatternsGen();
|
||||||
static const AssetGenImage placeholder =
|
static const AssetGenImage placeholder =
|
||||||
AssetGenImage('assets/placeholder.png');
|
AssetGenImage('assets/placeholder.png');
|
||||||
static const AssetGenImage spotubeHeroBanner =
|
static const AssetGenImage spotubeIcon =
|
||||||
AssetGenImage('assets/spotube-hero-banner.png');
|
AssetGenImage('assets/spotube-icon.png');
|
||||||
static const AssetGenImage spotubeLogoForeground =
|
static const AssetGenImage spotubeLogoNightlyNotWallpaper =
|
||||||
AssetGenImage('assets/spotube-logo-foreground.jpg');
|
AssetGenImage('assets/spotube-logo-nightly-notWallpaper.png');
|
||||||
static const AssetGenImage spotubeLogoMacos =
|
static const AssetGenImage spotubeLogoStableNotWallpaper =
|
||||||
AssetGenImage('assets/spotube-logo-macos.png');
|
AssetGenImage('assets/spotube-logo-stable-notWallpaper.png');
|
||||||
static const AssetGenImage spotubeLogoBmp =
|
static const AssetGenImage spotubeLogoStableWallpaper =
|
||||||
AssetGenImage('assets/spotube-logo.bmp');
|
AssetGenImage('assets/spotube-logo-stable-wallpaper.png');
|
||||||
static const String spotubeLogoIco = 'assets/spotube-logo.ico';
|
|
||||||
static const AssetGenImage spotubeLogoPng =
|
|
||||||
AssetGenImage('assets/spotube-logo.png');
|
|
||||||
static const String spotubeLogoSvg = 'assets/spotube-logo.svg';
|
|
||||||
static const AssetGenImage spotubeLogoAndroid12 =
|
|
||||||
AssetGenImage('assets/spotube-logo_android12.png');
|
|
||||||
static const AssetGenImage spotubeNightlyLogoForeground =
|
|
||||||
AssetGenImage('assets/spotube-nightly-logo-foreground.jpg');
|
|
||||||
static const AssetGenImage spotubeNightlyLogoPng =
|
|
||||||
AssetGenImage('assets/spotube-nightly-logo.png');
|
|
||||||
static const String spotubeNightlyLogoSvg = 'assets/spotube-nightly-logo.svg';
|
|
||||||
static const AssetGenImage spotubeNightlyLogoAndroid12 =
|
|
||||||
AssetGenImage('assets/spotube-nightly-logo_android12.png');
|
|
||||||
static const AssetGenImage spotubeScreenshot =
|
|
||||||
AssetGenImage('assets/spotube-screenshot.png');
|
|
||||||
static const AssetGenImage spotubeTallCapsule =
|
|
||||||
AssetGenImage('assets/spotube-tall-capsule.png');
|
|
||||||
static const AssetGenImage spotubeWideCapsuleLarge =
|
|
||||||
AssetGenImage('assets/spotube-wide-capsule-large.png');
|
|
||||||
static const AssetGenImage spotubeWideCapsuleSmall =
|
|
||||||
AssetGenImage('assets/spotube-wide-capsule-small.png');
|
|
||||||
static const AssetGenImage spotubeBanner =
|
|
||||||
AssetGenImage('assets/spotube_banner.png');
|
|
||||||
static const AssetGenImage success = AssetGenImage('assets/success.png');
|
|
||||||
static const $AssetsTutorialGen tutorial = $AssetsTutorialGen();
|
static const $AssetsTutorialGen tutorial = $AssetsTutorialGen();
|
||||||
static const AssetGenImage userPlaceholder =
|
static const AssetGenImage userPlaceholder =
|
||||||
AssetGenImage('assets/user-placeholder.png');
|
AssetGenImage('assets/user-placeholder.png');
|
||||||
@ -188,31 +162,16 @@ class Assets {
|
|||||||
static List<dynamic> get values => [
|
static List<dynamic> get values => [
|
||||||
license,
|
license,
|
||||||
albumPlaceholder,
|
albumPlaceholder,
|
||||||
bengaliPatternsBg,
|
|
||||||
branding,
|
branding,
|
||||||
emptyBox,
|
emptyBox,
|
||||||
invidious,
|
invidious,
|
||||||
jiosaavn,
|
jiosaavn,
|
||||||
likedTracks,
|
likedTracks,
|
||||||
placeholder,
|
placeholder,
|
||||||
spotubeHeroBanner,
|
spotubeIcon,
|
||||||
spotubeLogoForeground,
|
spotubeLogoNightlyNotWallpaper,
|
||||||
spotubeLogoMacos,
|
spotubeLogoStableNotWallpaper,
|
||||||
spotubeLogoBmp,
|
spotubeLogoStableWallpaper,
|
||||||
spotubeLogoIco,
|
|
||||||
spotubeLogoPng,
|
|
||||||
spotubeLogoSvg,
|
|
||||||
spotubeLogoAndroid12,
|
|
||||||
spotubeNightlyLogoForeground,
|
|
||||||
spotubeNightlyLogoPng,
|
|
||||||
spotubeNightlyLogoSvg,
|
|
||||||
spotubeNightlyLogoAndroid12,
|
|
||||||
spotubeScreenshot,
|
|
||||||
spotubeTallCapsule,
|
|
||||||
spotubeWideCapsuleLarge,
|
|
||||||
spotubeWideCapsuleSmall,
|
|
||||||
spotubeBanner,
|
|
||||||
success,
|
|
||||||
userPlaceholder
|
userPlaceholder
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import 'package:spotube/utils/platform.dart';
|
|||||||
|
|
||||||
class PlayPauseIntent extends Intent {
|
class PlayPauseIntent extends Intent {
|
||||||
final WidgetRef ref;
|
final WidgetRef ref;
|
||||||
|
|
||||||
const PlayPauseIntent(this.ref);
|
const PlayPauseIntent(this.ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,6 +35,7 @@ class PlayPauseAction extends Action<PlayPauseIntent> {
|
|||||||
class NavigationIntent extends Intent {
|
class NavigationIntent extends Intent {
|
||||||
final AppRouter router;
|
final AppRouter router;
|
||||||
final String path;
|
final String path;
|
||||||
|
|
||||||
const NavigationIntent(this.router, this.path);
|
const NavigationIntent(this.router, this.path);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +50,6 @@ class NavigationAction extends Action<NavigationIntent> {
|
|||||||
enum HomeTabs {
|
enum HomeTabs {
|
||||||
browse,
|
browse,
|
||||||
search,
|
search,
|
||||||
|
|
||||||
lyrics,
|
lyrics,
|
||||||
userPlaylists,
|
userPlaylists,
|
||||||
userArtists,
|
userArtists,
|
||||||
@ -60,6 +61,7 @@ enum HomeTabs {
|
|||||||
class HomeTabIntent extends Intent {
|
class HomeTabIntent extends Intent {
|
||||||
final AppRouter router;
|
final AppRouter router;
|
||||||
final HomeTabs tab;
|
final HomeTabs tab;
|
||||||
|
|
||||||
const HomeTabIntent(this.router, {required this.tab});
|
const HomeTabIntent(this.router, {required this.tab});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +77,7 @@ class HomeTabAction extends Action<HomeTabIntent> {
|
|||||||
router.navigate(const SearchRoute());
|
router.navigate(const SearchRoute());
|
||||||
break;
|
break;
|
||||||
case HomeTabs.lyrics:
|
case HomeTabs.lyrics:
|
||||||
router.navigate(LyricsRoute());
|
router.navigate(const LyricsRoute());
|
||||||
break;
|
break;
|
||||||
case HomeTabs.userPlaylists:
|
case HomeTabs.userPlaylists:
|
||||||
router.navigate(const UserPlaylistsRoute());
|
router.navigate(const UserPlaylistsRoute());
|
||||||
@ -100,6 +102,7 @@ class HomeTabAction extends Action<HomeTabIntent> {
|
|||||||
class SeekIntent extends Intent {
|
class SeekIntent extends Intent {
|
||||||
final WidgetRef ref;
|
final WidgetRef ref;
|
||||||
final bool forward;
|
final bool forward;
|
||||||
|
|
||||||
const SeekIntent(this.ref, this.forward);
|
const SeekIntent(this.ref, this.forward);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,10 +144,10 @@ class AppRouter extends RootStackRouter {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
AutoRoute(
|
// AutoRoute(
|
||||||
path: "track/:id",
|
// path: "track/:id",
|
||||||
page: TrackRoute.page,
|
// page: TrackRoute.page,
|
||||||
),
|
// ),
|
||||||
AutoRoute(
|
AutoRoute(
|
||||||
path: "connect",
|
path: "connect",
|
||||||
page: ConnectRoute.page,
|
page: ConnectRoute.page,
|
||||||
@ -214,22 +214,18 @@ class AppRouter extends RootStackRouter {
|
|||||||
AutoRoute(
|
AutoRoute(
|
||||||
path: "/mini-player",
|
path: "/mini-player",
|
||||||
page: MiniLyricsRoute.page,
|
page: MiniLyricsRoute.page,
|
||||||
// parentNavigatorKey: rootNavigatorKey,
|
|
||||||
),
|
),
|
||||||
AutoRoute(
|
AutoRoute(
|
||||||
path: "/getting-started",
|
path: "/getting-started",
|
||||||
page: GettingStartedRoute.page,
|
page: GettingStartedRoute.page,
|
||||||
// parentNavigatorKey: rootNavigatorKey,
|
|
||||||
),
|
),
|
||||||
AutoRoute(
|
AutoRoute(
|
||||||
path: "/login",
|
path: "/login",
|
||||||
page: WebViewLoginRoute.page,
|
page: WebViewLoginRoute.page,
|
||||||
// parentNavigatorKey: rootNavigatorKey,
|
|
||||||
),
|
),
|
||||||
AutoRoute(
|
AutoRoute(
|
||||||
path: "/lastfm-login",
|
path: "/lastfm-login",
|
||||||
page: LastFMLoginRoute.page,
|
page: LastFMLoginRoute.page,
|
||||||
// parentNavigatorKey: rootNavigatorKey,
|
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -38,17 +38,17 @@ List<SideBarTiles> getSidebarTileList(AppLocalizations l10n) => [
|
|||||||
SideBarTiles(
|
SideBarTiles(
|
||||||
id: "lyrics",
|
id: "lyrics",
|
||||||
pathPrefix: "/lyrics",
|
pathPrefix: "/lyrics",
|
||||||
route: LyricsRoute(),
|
route: const LyricsRoute(),
|
||||||
icon: SpotubeIcons.music,
|
icon: SpotubeIcons.music,
|
||||||
title: l10n.lyrics,
|
title: l10n.lyrics,
|
||||||
),
|
),
|
||||||
SideBarTiles(
|
// SideBarTiles(
|
||||||
id: "stats",
|
// id: "stats",
|
||||||
pathPrefix: "/stats",
|
// pathPrefix: "/stats",
|
||||||
route: const StatsRoute(),
|
// route: const StatsRoute(),
|
||||||
icon: SpotubeIcons.chart,
|
// icon: SpotubeIcons.chart,
|
||||||
title: l10n.stats,
|
// title: l10n.stats,
|
||||||
),
|
// ),
|
||||||
];
|
];
|
||||||
|
|
||||||
List<SideBarTiles> getSidebarLibraryTileList(AppLocalizations l10n) => [
|
List<SideBarTiles> getSidebarLibraryTileList(AppLocalizations l10n) => [
|
||||||
@ -104,11 +104,11 @@ List<SideBarTiles> getNavbarTileList(AppLocalizations l10n) => [
|
|||||||
icon: SpotubeIcons.library,
|
icon: SpotubeIcons.library,
|
||||||
title: l10n.library,
|
title: l10n.library,
|
||||||
),
|
),
|
||||||
SideBarTiles(
|
// SideBarTiles(
|
||||||
id: "stats",
|
// id: "stats",
|
||||||
pathPrefix: "/stats",
|
// pathPrefix: "/stats",
|
||||||
route: const StatsRoute(),
|
// route: const StatsRoute(),
|
||||||
icon: SpotubeIcons.chart,
|
// icon: SpotubeIcons.chart,
|
||||||
title: l10n.stats,
|
// title: l10n.stats,
|
||||||
),
|
// ),
|
||||||
];
|
];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
|
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:simple_icons/simple_icons.dart';
|
import 'package:simple_icons/simple_icons.dart';
|
||||||
|
|
||||||
abstract class SpotubeIcons {
|
abstract class SpotubeIcons {
|
||||||
|
@ -6,6 +6,7 @@ import 'package:spotube/extensions/constrains.dart';
|
|||||||
|
|
||||||
class AdaptiveMenuButton<T> extends MenuButton {
|
class AdaptiveMenuButton<T> extends MenuButton {
|
||||||
final T? value;
|
final T? value;
|
||||||
|
|
||||||
const AdaptiveMenuButton({
|
const AdaptiveMenuButton({
|
||||||
super.key,
|
super.key,
|
||||||
this.value,
|
this.value,
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
import 'package:flutter/material.dart' show ListTile, ListTileControlAffinity;
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
|
||||||
import 'package:spotube/extensions/constrains.dart';
|
|
||||||
|
|
||||||
class AdaptiveSelectTile<T> extends HookWidget {
|
class AdaptiveSelectTile<T> extends HookWidget {
|
||||||
final Widget title;
|
final Widget title;
|
||||||
@ -13,7 +10,7 @@ class AdaptiveSelectTile<T> extends HookWidget {
|
|||||||
final T value;
|
final T value;
|
||||||
final ValueChanged<T?>? onChanged;
|
final ValueChanged<T?>? onChanged;
|
||||||
|
|
||||||
final List<SelectItemButton<T>> options;
|
final List<DropdownMenuItem<T>> options;
|
||||||
|
|
||||||
/// Show the smaller value when the breakpoint is reached
|
/// Show the smaller value when the breakpoint is reached
|
||||||
///
|
///
|
||||||
@ -24,8 +21,9 @@ class AdaptiveSelectTile<T> extends HookWidget {
|
|||||||
|
|
||||||
final bool? breakLayout;
|
final bool? breakLayout;
|
||||||
|
|
||||||
final BoxConstraints? popupConstraints;
|
final double? popupMaxWidth;
|
||||||
final PopoverConstraint? popupWidthConstraint;
|
|
||||||
|
final dynamic popup;
|
||||||
|
|
||||||
const AdaptiveSelectTile({
|
const AdaptiveSelectTile({
|
||||||
required this.title,
|
required this.title,
|
||||||
@ -39,87 +37,96 @@ class AdaptiveSelectTile<T> extends HookWidget {
|
|||||||
this.breakLayout,
|
this.breakLayout,
|
||||||
this.showValueWhenUnfolded = true,
|
this.showValueWhenUnfolded = true,
|
||||||
super.key,
|
super.key,
|
||||||
this.popupConstraints,
|
this.popupMaxWidth,
|
||||||
this.popupWidthConstraint,
|
this.popup,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final theme = Theme.of(context);
|
final theme = Theme.of(context);
|
||||||
final mediaQuery = MediaQuery.sizeOf(context);
|
final mediaQuery = MediaQuery.of(context);
|
||||||
|
|
||||||
Widget? control = Select<T>(
|
// Create control widget
|
||||||
itemBuilder: (context, item) {
|
Widget? control = DropdownButton<T>(
|
||||||
return options.firstWhere((element) => element.value == item).child;
|
|
||||||
},
|
|
||||||
value: value,
|
value: value,
|
||||||
|
items: options,
|
||||||
onChanged: onChanged,
|
onChanged: onChanged,
|
||||||
popupConstraints: popupConstraints ?? const BoxConstraints(maxWidth: 200),
|
underline: Container(),
|
||||||
popupWidthConstraint: popupWidthConstraint ?? PopoverConstraint.flexible,
|
|
||||||
autoClosePopover: true,
|
|
||||||
popup: (context) {
|
|
||||||
return SelectPopup(
|
|
||||||
autoClose: true,
|
|
||||||
items: SelectItemBuilder(
|
|
||||||
childCount: options.length,
|
|
||||||
builder: (context, index) {
|
|
||||||
return options[index];
|
|
||||||
},
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (mediaQuery.smAndDown) {
|
if (mediaQuery.size.width < 600) {
|
||||||
if (showValueWhenUnfolded) {
|
control = showValueWhenUnfolded
|
||||||
control = OutlineBadge(
|
? Text(
|
||||||
child: options.firstWhere((element) => element.value == value).child,
|
options
|
||||||
);
|
.firstWhere((item) => item.value == value)
|
||||||
} else {
|
.child
|
||||||
control = null;
|
.toString(),
|
||||||
}
|
style: TextStyle(color: theme.colorScheme.primary),
|
||||||
|
)
|
||||||
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Render the ListTile
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: title,
|
contentPadding:
|
||||||
subtitle: subtitle,
|
const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
|
||||||
leading: controlAffinity != ListTileControlAffinity.leading
|
title: DefaultTextStyle(
|
||||||
? secondary
|
style:
|
||||||
: control,
|
theme.textTheme.titleMedium!.copyWith(fontWeight: FontWeight.bold),
|
||||||
|
child: title,
|
||||||
|
),
|
||||||
|
subtitle: subtitle != null
|
||||||
|
? Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 4.0),
|
||||||
|
child: DefaultTextStyle(
|
||||||
|
style: theme.textTheme.bodySmall!
|
||||||
|
.copyWith(color: theme.colorScheme.secondary),
|
||||||
|
child: subtitle!,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: null,
|
||||||
|
leading: controlAffinity == ListTileControlAffinity.leading
|
||||||
|
? control
|
||||||
|
: secondary,
|
||||||
trailing: Row(
|
trailing: Row(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
|
||||||
spacing: 5,
|
|
||||||
children: [
|
children: [
|
||||||
...?trailing,
|
...?trailing,
|
||||||
if (controlAffinity == ListTileControlAffinity.leading &&
|
if (controlAffinity == ListTileControlAffinity.trailing &&
|
||||||
secondary != null)
|
|
||||||
secondary!
|
|
||||||
else if (controlAffinity == ListTileControlAffinity.trailing &&
|
|
||||||
control != null)
|
control != null)
|
||||||
control,
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(left: 8.0),
|
||||||
|
child: control,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
onTap: breakLayout ?? mediaQuery.mdAndUp
|
onTap: breakLayout ?? mediaQuery.size.width >= 600
|
||||||
? null
|
? null
|
||||||
: () {
|
: () {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return AlertDialog(
|
return AlertDialog(
|
||||||
content: Flexible(
|
contentPadding: const EdgeInsets.all(16.0),
|
||||||
|
content: Container(
|
||||||
|
constraints:
|
||||||
|
BoxConstraints(maxWidth: popupMaxWidth ?? 300),
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: options.length,
|
itemCount: options.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
final item = options[index];
|
final item = options[index];
|
||||||
|
|
||||||
return ListTile(
|
return ListTile(
|
||||||
iconColor: theme.colorScheme.primary,
|
dense: true,
|
||||||
leading: item.value == value
|
leading: Icon(
|
||||||
? const Icon(SpotubeIcons.radioChecked)
|
item.value == value
|
||||||
: const Icon(SpotubeIcons.radioUnchecked),
|
? Icons.radio_button_checked
|
||||||
title: item.child,
|
: Icons.radio_button_unchecked,
|
||||||
|
color: item.value == value
|
||||||
|
? theme.colorScheme.primary
|
||||||
|
: theme.colorScheme.secondary,
|
||||||
|
),
|
||||||
|
title: Text(item.child.toString()),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
onChanged?.call(item.value);
|
onChanged?.call(item.value);
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
|
@ -4,6 +4,7 @@ import 'package:spotube/collections/spotube_icons.dart';
|
|||||||
class BackButton extends StatelessWidget {
|
class BackButton extends StatelessWidget {
|
||||||
final Color? color;
|
final Color? color;
|
||||||
final IconData icon;
|
final IconData icon;
|
||||||
|
|
||||||
const BackButton({
|
const BackButton({
|
||||||
super.key,
|
super.key,
|
||||||
this.color,
|
this.color,
|
||||||
|
@ -78,6 +78,7 @@ class ConfirmDownloadDialog extends StatelessWidget {
|
|||||||
|
|
||||||
class BulletPoint extends StatelessWidget {
|
class BulletPoint extends StatelessWidget {
|
||||||
final String text;
|
final String text;
|
||||||
|
|
||||||
const BulletPoint(this.text, {super.key});
|
const BulletPoint(this.text, {super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
import 'package:spotify/spotify.dart';
|
import 'package:spotify/spotify.dart';
|
||||||
import 'package:spotube/modules/playlist/playlist_create_dialog.dart';
|
|
||||||
import 'package:spotube/components/image/universal_image.dart';
|
import 'package:spotube/components/image/universal_image.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/extensions/image.dart';
|
import 'package:spotube/extensions/image.dart';
|
||||||
|
import 'package:spotube/modules/playlist/playlist_create_dialog.dart';
|
||||||
import 'package:spotube/provider/spotify/spotify.dart';
|
import 'package:spotube/provider/spotify/spotify.dart';
|
||||||
|
|
||||||
class PlaylistAddTrackDialog extends HookConsumerWidget {
|
class PlaylistAddTrackDialog extends HookConsumerWidget {
|
||||||
/// The id of the playlist this dialog was opened from
|
/// The id of the playlist this dialog was opened from
|
||||||
final String? openFromPlaylist;
|
final String? openFromPlaylist;
|
||||||
final List<Track> tracks;
|
final List<Track> tracks;
|
||||||
|
|
||||||
const PlaylistAddTrackDialog({
|
const PlaylistAddTrackDialog({
|
||||||
required this.tracks,
|
required this.tracks,
|
||||||
required this.openFromPlaylist,
|
required this.openFromPlaylist,
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
import 'package:spotify/spotify.dart';
|
import 'package:spotify/spotify.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
|
|
||||||
@ -8,6 +7,7 @@ final replaceDownloadedFileState = StateProvider<bool?>((ref) => null);
|
|||||||
|
|
||||||
class ReplaceDownloadedDialog extends ConsumerWidget {
|
class ReplaceDownloadedDialog extends ConsumerWidget {
|
||||||
final Track track;
|
final Track track;
|
||||||
|
|
||||||
const ReplaceDownloadedDialog({required this.track, super.key});
|
const ReplaceDownloadedDialog({required this.track, super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -8,11 +8,12 @@ import 'package:spotube/components/links/hyper_link.dart';
|
|||||||
import 'package:spotube/components/links/link_text.dart';
|
import 'package:spotube/components/links/link_text.dart';
|
||||||
import 'package:spotube/extensions/constrains.dart';
|
import 'package:spotube/extensions/constrains.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/services/sourced_track/sourced_track.dart';
|
|
||||||
import 'package:spotube/extensions/duration.dart';
|
import 'package:spotube/extensions/duration.dart';
|
||||||
|
import 'package:spotube/services/sourced_track/sourced_track.dart';
|
||||||
|
|
||||||
class TrackDetailsDialog extends HookWidget {
|
class TrackDetailsDialog extends HookWidget {
|
||||||
final Track track;
|
final Track track;
|
||||||
|
|
||||||
const TrackDetailsDialog({
|
const TrackDetailsDialog({
|
||||||
super.key,
|
super.key,
|
||||||
required this.track,
|
required this.track,
|
||||||
|
@ -5,12 +5,12 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/collections/routes.gr.dart';
|
import 'package:spotube/collections/routes.gr.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
|
|
||||||
import 'package:spotube/provider/authentication/authentication.dart';
|
import 'package:spotube/provider/authentication/authentication.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
|
|
||||||
class AnonymousFallback extends ConsumerWidget {
|
class AnonymousFallback extends ConsumerWidget {
|
||||||
final Widget? child;
|
final Widget? child;
|
||||||
|
|
||||||
const AnonymousFallback({
|
const AnonymousFallback({
|
||||||
super.key,
|
super.key,
|
||||||
this.child,
|
this.child,
|
||||||
|
@ -16,7 +16,7 @@ class NotFound extends StatelessWidget {
|
|||||||
height: 200 * context.theme.scaling,
|
height: 200 * context.theme.scaling,
|
||||||
color: context.theme.colorScheme.primary,
|
color: context.theme.colorScheme.primary,
|
||||||
),
|
),
|
||||||
const Gap(10),
|
const Gap(16),
|
||||||
Text(
|
Text(
|
||||||
context.l10n.nothing_found,
|
context.l10n.nothing_found,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
|
@ -9,6 +9,7 @@ class CheckboxFormBuilderField extends StatelessWidget {
|
|||||||
final Widget? leading;
|
final Widget? leading;
|
||||||
final Widget? trailing;
|
final Widget? trailing;
|
||||||
final bool tristate;
|
final bool tristate;
|
||||||
|
|
||||||
const CheckboxFormBuilderField({
|
const CheckboxFormBuilderField({
|
||||||
super.key,
|
super.key,
|
||||||
required this.name,
|
required this.name,
|
||||||
|
@ -11,6 +11,7 @@ class TextFormBuilderField extends StatelessWidget {
|
|||||||
final TextEditingController? controller;
|
final TextEditingController? controller;
|
||||||
final bool filled;
|
final bool filled;
|
||||||
final Widget? placeholder;
|
final Widget? placeholder;
|
||||||
|
|
||||||
// final AlignmentGeometry? placeholderAlignment;
|
// final AlignmentGeometry? placeholderAlignment;
|
||||||
// final AlignmentGeometry? leadingAlignment;
|
// final AlignmentGeometry? leadingAlignment;
|
||||||
// final AlignmentGeometry? trailingAlignment;
|
// final AlignmentGeometry? trailingAlignment;
|
||||||
@ -41,6 +42,7 @@ class TextFormBuilderField extends StatelessWidget {
|
|||||||
final void Function(PointerDownEvent event)? onTapOutside;
|
final void Function(PointerDownEvent event)? onTapOutside;
|
||||||
final List<TextInputFormatter>? inputFormatters;
|
final List<TextInputFormatter>? inputFormatters;
|
||||||
final TextStyle? style;
|
final TextStyle? style;
|
||||||
|
|
||||||
// final EditableTextContextMenuBuilder? contextMenuBuilder;
|
// final EditableTextContextMenuBuilder? contextMenuBuilder;
|
||||||
// final bool useNativeContextMenu;
|
// final bool useNativeContextMenu;
|
||||||
// final bool? isCollapsed;
|
// final bool? isCollapsed;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
import 'package:spotify/spotify.dart';
|
import 'package:spotify/spotify.dart';
|
||||||
import 'package:spotube/components/heart_button/use_track_toggle_like.dart';
|
import 'package:spotube/components/heart_button/use_track_toggle_like.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
@ -15,6 +14,7 @@ class HeartButton extends HookConsumerWidget {
|
|||||||
final String? tooltip;
|
final String? tooltip;
|
||||||
final ButtonVariance variance;
|
final ButtonVariance variance;
|
||||||
final ButtonSize size;
|
final ButtonSize size;
|
||||||
|
|
||||||
const HeartButton({
|
const HeartButton({
|
||||||
required this.isLiked,
|
required this.isLiked,
|
||||||
required this.onPressed,
|
required this.onPressed,
|
||||||
@ -64,6 +64,7 @@ class HeartButton extends HookConsumerWidget {
|
|||||||
|
|
||||||
class TrackHeartButton extends HookConsumerWidget {
|
class TrackHeartButton extends HookConsumerWidget {
|
||||||
final Track track;
|
final Track track;
|
||||||
|
|
||||||
const TrackHeartButton({
|
const TrackHeartButton({
|
||||||
super.key,
|
super.key,
|
||||||
required this.track,
|
required this.track,
|
||||||
|
@ -93,7 +93,7 @@ class HorizontalPlaybuttonCardView<T> extends HookWidget {
|
|||||||
),
|
),
|
||||||
isLoading: isLoadingNextPage,
|
isLoading: isLoadingNextPage,
|
||||||
hasReachedMax: !hasNextPage,
|
hasReachedMax: !hasNextPage,
|
||||||
separatorBuilder: (context, index) => Gap(12 * scale),
|
separatorBuilder: (context, index) => Gap(24 * scale),
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
final item = items[index];
|
final item = items[index];
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
|||||||
class HoverBuilder extends HookWidget {
|
class HoverBuilder extends HookWidget {
|
||||||
final bool? permanentState;
|
final bool? permanentState;
|
||||||
final Widget Function(BuildContext context, bool isHovering) builder;
|
final Widget Function(BuildContext context, bool isHovering) builder;
|
||||||
|
|
||||||
const HoverBuilder({
|
const HoverBuilder({
|
||||||
required this.builder,
|
required this.builder,
|
||||||
this.permanentState,
|
this.permanentState,
|
||||||
|
@ -13,6 +13,7 @@ class UniversalImage extends HookWidget {
|
|||||||
final double scale;
|
final double scale;
|
||||||
final String? placeholder;
|
final String? placeholder;
|
||||||
final BoxFit? fit;
|
final BoxFit? fit;
|
||||||
|
|
||||||
const UniversalImage({
|
const UniversalImage({
|
||||||
required this.path,
|
required this.path,
|
||||||
this.height,
|
this.height,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:draggable_scrollbar/draggable_scrollbar.dart';
|
import 'package:draggable_scrollbar/draggable_scrollbar.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
|
|
||||||
class InterScrollbar extends HookWidget {
|
class InterScrollbar extends HookWidget {
|
||||||
|
@ -61,13 +61,12 @@ class ArtistLink extends StatelessWidget {
|
|||||||
if (hideOverflowArtist && artists.length > 3)
|
if (hideOverflowArtist && artists.length > 3)
|
||||||
AnchorButton(
|
AnchorButton(
|
||||||
context.l10n.and_n_more(artists.length - 3),
|
context.l10n.and_n_more(artists.length - 3),
|
||||||
onTap: () {
|
// onTap: () {
|
||||||
onOverflowArtistClick?.call();
|
// onOverflowArtistClick;
|
||||||
},
|
// },
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: textStyle.copyWith(
|
style: textStyle.copyWith(
|
||||||
color: colorScheme.secondary,
|
color: Colors.white,
|
||||||
decoration: TextDecoration.underline,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -11,6 +11,7 @@ class LinkText<T> extends StatelessWidget {
|
|||||||
final int? maxLines;
|
final int? maxLines;
|
||||||
|
|
||||||
final bool push;
|
final bool push;
|
||||||
|
|
||||||
const LinkText(
|
const LinkText(
|
||||||
this.text,
|
this.text,
|
||||||
this.route, {
|
this.route, {
|
||||||
|
@ -99,7 +99,7 @@ class PlaybuttonCard extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const Gap(5),
|
const Gap(8),
|
||||||
AnimatedScale(
|
AnimatedScale(
|
||||||
curve: Curves.easeOutBack,
|
curve: Curves.easeOutBack,
|
||||||
duration: const Duration(milliseconds: 150),
|
duration: const Duration(milliseconds: 150),
|
||||||
|
@ -102,7 +102,7 @@ class PlaybuttonView extends StatelessWidget {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SliverGap(10),
|
const SliverGap(16),
|
||||||
// Toggle between grid and list view
|
// Toggle between grid and list view
|
||||||
switch ((isGrid.value, isLoading)) {
|
switch ((isGrid.value, isLoading)) {
|
||||||
(true, _) => !isLoading && itemCount == 0
|
(true, _) => !isLoading && itemCount == 0
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:gap/gap.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
import 'package:skeletonizer/skeletonizer.dart';
|
import 'package:skeletonizer/skeletonizer.dart';
|
||||||
|
|
||||||
class ShimmerLyrics extends HookWidget {
|
class ShimmerLyrics extends HookWidget {
|
||||||
@ -27,7 +25,7 @@ class ShimmerLyrics extends HookWidget {
|
|||||||
children: [
|
children: [
|
||||||
for (final text in texts) ...[
|
for (final text in texts) ...[
|
||||||
Text(text),
|
Text(text),
|
||||||
if (text != texts.last) const Gap(10),
|
if (text != texts.last) const Gap(16),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/components/hover_builder.dart';
|
import 'package:spotube/components/hover_builder.dart';
|
||||||
import 'package:spotube/components/titlebar/titlebar.dart';
|
import 'package:spotube/components/titlebar/titlebar.dart';
|
||||||
import 'package:spotube/components/titlebar/titlebar_icon_buttons.dart';
|
import 'package:spotube/components/titlebar/titlebar_icon_buttons.dart';
|
||||||
|
|
||||||
import 'package:spotube/hooks/configurators/use_window_listener.dart';
|
import 'package:spotube/hooks/configurators/use_window_listener.dart';
|
||||||
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
@ -14,6 +13,7 @@ import 'package:window_manager/window_manager.dart';
|
|||||||
|
|
||||||
class WindowTitleBarButtons extends HookConsumerWidget {
|
class WindowTitleBarButtons extends HookConsumerWidget {
|
||||||
final Color? foregroundColor;
|
final Color? foregroundColor;
|
||||||
|
|
||||||
const WindowTitleBarButtons({
|
const WindowTitleBarButtons({
|
||||||
super.key,
|
super.key,
|
||||||
this.foregroundColor,
|
this.foregroundColor,
|
||||||
@ -78,9 +78,7 @@ class WindowTitleBarButtons extends HookConsumerWidget {
|
|||||||
HoverBuilder(builder: (context, isHovered) {
|
HoverBuilder(builder: (context, isHovered) {
|
||||||
return ShadcnWindowButton(
|
return ShadcnWindowButton(
|
||||||
icon: CloseIcon(
|
icon: CloseIcon(
|
||||||
color: isHovered
|
color: isHovered ? Colors.white : Colors.red,
|
||||||
? Colors.white
|
|
||||||
: context.theme.colorScheme.foreground,
|
|
||||||
),
|
),
|
||||||
onPressed: onClose,
|
onPressed: onClose,
|
||||||
hoverBackgroundColor: const Color(0xFFD32F2F),
|
hoverBackgroundColor: const Color(0xFFD32F2F),
|
||||||
|
@ -48,7 +48,9 @@ class ShadcnWindowButton extends StatelessWidget {
|
|||||||
/// Close
|
/// Close
|
||||||
class CloseIcon extends StatelessWidget {
|
class CloseIcon extends StatelessWidget {
|
||||||
final Color color;
|
final Color color;
|
||||||
|
|
||||||
const CloseIcon({super.key, required this.color});
|
const CloseIcon({super.key, required this.color});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => Align(
|
Widget build(BuildContext context) => Align(
|
||||||
alignment: Alignment.topLeft,
|
alignment: Alignment.topLeft,
|
||||||
@ -69,13 +71,16 @@ class CloseIcon extends StatelessWidget {
|
|||||||
/// Maximize
|
/// Maximize
|
||||||
class MaximizeIcon extends StatelessWidget {
|
class MaximizeIcon extends StatelessWidget {
|
||||||
final Color color;
|
final Color color;
|
||||||
|
|
||||||
const MaximizeIcon({super.key, required this.color});
|
const MaximizeIcon({super.key, required this.color});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => _AlignedPaint(_MaximizePainter(color));
|
Widget build(BuildContext context) => _AlignedPaint(_MaximizePainter(color));
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MaximizePainter extends _IconPainter {
|
class _MaximizePainter extends _IconPainter {
|
||||||
_MaximizePainter(super.color);
|
_MaximizePainter(super.color);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void paint(Canvas canvas, Size size) {
|
void paint(Canvas canvas, Size size) {
|
||||||
Paint p = getPaint(color);
|
Paint p = getPaint(color);
|
||||||
@ -86,16 +91,19 @@ class _MaximizePainter extends _IconPainter {
|
|||||||
/// Restore
|
/// Restore
|
||||||
class RestoreIcon extends StatelessWidget {
|
class RestoreIcon extends StatelessWidget {
|
||||||
final Color color;
|
final Color color;
|
||||||
|
|
||||||
const RestoreIcon({
|
const RestoreIcon({
|
||||||
super.key,
|
super.key,
|
||||||
required this.color,
|
required this.color,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => _AlignedPaint(_RestorePainter(color));
|
Widget build(BuildContext context) => _AlignedPaint(_RestorePainter(color));
|
||||||
}
|
}
|
||||||
|
|
||||||
class _RestorePainter extends _IconPainter {
|
class _RestorePainter extends _IconPainter {
|
||||||
_RestorePainter(super.color);
|
_RestorePainter(super.color);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void paint(Canvas canvas, Size size) {
|
void paint(Canvas canvas, Size size) {
|
||||||
Paint p = getPaint(color);
|
Paint p = getPaint(color);
|
||||||
@ -112,13 +120,16 @@ class _RestorePainter extends _IconPainter {
|
|||||||
/// Minimize
|
/// Minimize
|
||||||
class MinimizeIcon extends StatelessWidget {
|
class MinimizeIcon extends StatelessWidget {
|
||||||
final Color color;
|
final Color color;
|
||||||
|
|
||||||
const MinimizeIcon({super.key, required this.color});
|
const MinimizeIcon({super.key, required this.color});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => _AlignedPaint(_MinimizePainter(color));
|
Widget build(BuildContext context) => _AlignedPaint(_MinimizePainter(color));
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MinimizePainter extends _IconPainter {
|
class _MinimizePainter extends _IconPainter {
|
||||||
_MinimizePainter(super.color);
|
_MinimizePainter(super.color);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void paint(Canvas canvas, Size size) {
|
void paint(Canvas canvas, Size size) {
|
||||||
Paint p = getPaint(color);
|
Paint p = getPaint(color);
|
||||||
@ -130,6 +141,7 @@ class _MinimizePainter extends _IconPainter {
|
|||||||
/// Helpers
|
/// Helpers
|
||||||
abstract class _IconPainter extends CustomPainter {
|
abstract class _IconPainter extends CustomPainter {
|
||||||
_IconPainter(this.color);
|
_IconPainter(this.color);
|
||||||
|
|
||||||
final Color color;
|
final Color color;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -138,6 +150,7 @@ abstract class _IconPainter extends CustomPainter {
|
|||||||
|
|
||||||
class _AlignedPaint extends StatelessWidget {
|
class _AlignedPaint extends StatelessWidget {
|
||||||
const _AlignedPaint(this.painter);
|
const _AlignedPaint(this.painter);
|
||||||
|
|
||||||
final CustomPainter painter;
|
final CustomPainter painter;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -10,9 +10,9 @@ import 'package:spotube/components/track_presentation/presentation_props.dart';
|
|||||||
import 'package:spotube/components/track_presentation/presentation_state.dart';
|
import 'package:spotube/components/track_presentation/presentation_state.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/models/database/database.dart';
|
import 'package:spotube/models/database/database.dart';
|
||||||
|
import 'package:spotube/provider/audio_player/audio_player.dart';
|
||||||
import 'package:spotube/provider/download_manager_provider.dart';
|
import 'package:spotube/provider/download_manager_provider.dart';
|
||||||
import 'package:spotube/provider/history/history.dart';
|
import 'package:spotube/provider/history/history.dart';
|
||||||
import 'package:spotube/provider/audio_player/audio_player.dart';
|
|
||||||
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
||||||
|
|
||||||
class TrackPresentationActionsSection extends HookConsumerWidget {
|
class TrackPresentationActionsSection extends HookConsumerWidget {
|
||||||
@ -165,7 +165,7 @@ class TrackPresentationActionsSection extends HookConsumerWidget {
|
|||||||
if (!context.mounted) return;
|
if (!context.mounted) return;
|
||||||
},
|
},
|
||||||
icon: const Icon(SpotubeIcons.moreVertical),
|
icon: const Icon(SpotubeIcons.moreVertical),
|
||||||
variance: ButtonVariance.outline,
|
// variance: ButtonVariance.outline,
|
||||||
items: (context) => [
|
items: (context) => [
|
||||||
AdaptiveMenuButton(
|
AdaptiveMenuButton(
|
||||||
value: "download",
|
value: "download",
|
||||||
|
@ -7,9 +7,9 @@ import 'package:skeletonizer/skeletonizer.dart';
|
|||||||
import 'package:spotube/collections/fake.dart';
|
import 'package:spotube/collections/fake.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_state.dart';
|
import 'package:spotube/components/track_presentation/presentation_state.dart';
|
||||||
|
import 'package:spotube/components/track_presentation/use_is_user_playlist.dart';
|
||||||
import 'package:spotube/components/track_presentation/use_track_tile_play_callback.dart';
|
import 'package:spotube/components/track_presentation/use_track_tile_play_callback.dart';
|
||||||
import 'package:spotube/components/track_tile/track_tile.dart';
|
import 'package:spotube/components/track_tile/track_tile.dart';
|
||||||
import 'package:spotube/components/track_presentation/use_is_user_playlist.dart';
|
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/provider/audio_player/audio_player.dart';
|
import 'package:spotube/provider/audio_player/audio_player.dart';
|
||||||
import 'package:very_good_infinite_list/very_good_infinite_list.dart';
|
import 'package:very_good_infinite_list/very_good_infinite_list.dart';
|
||||||
|
@ -2,16 +2,17 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
import 'package:spotube/components/track_presentation/sort_tracks_dropdown.dart';
|
|
||||||
import 'package:spotube/components/track_presentation/presentation_actions.dart';
|
import 'package:spotube/components/track_presentation/presentation_actions.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_state.dart';
|
import 'package:spotube/components/track_presentation/presentation_state.dart';
|
||||||
|
import 'package:spotube/components/track_presentation/sort_tracks_dropdown.dart';
|
||||||
import 'package:spotube/extensions/constrains.dart';
|
import 'package:spotube/extensions/constrains.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/hooks/controllers/use_shadcn_text_editing_controller.dart';
|
import 'package:spotube/hooks/controllers/use_shadcn_text_editing_controller.dart';
|
||||||
|
|
||||||
class TrackPresentationModifiersSection extends HookConsumerWidget {
|
class TrackPresentationModifiersSection extends HookConsumerWidget {
|
||||||
final FocusNode? focusNode;
|
final FocusNode? focusNode;
|
||||||
|
|
||||||
const TrackPresentationModifiersSection({
|
const TrackPresentationModifiersSection({
|
||||||
super.key,
|
super.key,
|
||||||
this.focusNode,
|
this.focusNode,
|
||||||
|
@ -144,7 +144,7 @@ class TrackPresentationTopSection extends HookConsumerWidget {
|
|||||||
return SurfaceCard(
|
return SurfaceCard(
|
||||||
child: Text(
|
child: Text(
|
||||||
context.l10n
|
context.l10n
|
||||||
.copied_shareurl_to_clipboard(options.shareUrl!),
|
.copied_share_url_to_clipboard(options.shareUrl!),
|
||||||
).small(),
|
).small(),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:spotube/collections/spotube_icons.dart';
|
import 'package:spotube/collections/spotube_icons.dart';
|
||||||
import 'package:spotube/pages/library/user_local_tracks/user_local_tracks.dart';
|
|
||||||
import 'package:spotube/components/adaptive/adaptive_pop_sheet_list.dart';
|
import 'package:spotube/components/adaptive/adaptive_pop_sheet_list.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
|
import 'package:spotube/pages/library/user_local_tracks/user_local_tracks.dart';
|
||||||
|
|
||||||
class SortTracksDropdown extends StatelessWidget {
|
class SortTracksDropdown extends StatelessWidget {
|
||||||
final SortBy? value;
|
final SortBy? value;
|
||||||
final void Function(SortBy)? onChanged;
|
final void Function(SortBy)? onChanged;
|
||||||
|
|
||||||
const SortTracksDropdown({
|
const SortTracksDropdown({
|
||||||
this.onChanged,
|
this.onChanged,
|
||||||
this.value,
|
this.value,
|
||||||
|
@ -4,15 +4,16 @@ import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotube/components/titlebar/titlebar.dart';
|
import 'package:spotube/components/titlebar/titlebar.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_list.dart';
|
import 'package:spotube/components/track_presentation/presentation_list.dart';
|
||||||
|
import 'package:spotube/components/track_presentation/presentation_modifiers.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_top.dart';
|
import 'package:spotube/components/track_presentation/presentation_top.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_modifiers.dart';
|
|
||||||
import 'package:spotube/extensions/constrains.dart';
|
import 'package:spotube/extensions/constrains.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
|
|
||||||
class TrackPresentation extends HookConsumerWidget {
|
class TrackPresentation extends HookConsumerWidget {
|
||||||
final TrackPresentationOptions options;
|
final TrackPresentationOptions options;
|
||||||
|
|
||||||
const TrackPresentation({
|
const TrackPresentation({
|
||||||
super.key,
|
super.key,
|
||||||
required this.options,
|
required this.options,
|
||||||
@ -88,7 +89,7 @@ class TrackPresentation extends HookConsumerWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
const PresentationListSection(),
|
const PresentationListSection(),
|
||||||
const SliverSafeArea(sliver: SliverGap(10)),
|
const SliverSafeArea(sliver: SliverGap(16)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -5,7 +5,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|||||||
import 'package:spotify/spotify.dart';
|
import 'package:spotify/spotify.dart';
|
||||||
import 'package:spotube/components/dialogs/select_device_dialog.dart';
|
import 'package:spotube/components/dialogs/select_device_dialog.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
||||||
|
|
||||||
import 'package:spotube/models/connect/connect.dart';
|
import 'package:spotube/models/connect/connect.dart';
|
||||||
import 'package:spotube/provider/audio_player/audio_player.dart';
|
import 'package:spotube/provider/audio_player/audio_player.dart';
|
||||||
import 'package:spotube/provider/connect/connect.dart';
|
import 'package:spotube/provider/connect/connect.dart';
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
||||||
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:spotify/spotify.dart';
|
import 'package:spotify/spotify.dart';
|
||||||
import 'package:spotube/components/dialogs/select_device_dialog.dart';
|
import 'package:spotube/components/dialogs/select_device_dialog.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
import 'package:spotube/components/track_presentation/presentation_props.dart';
|
||||||
import 'package:spotube/components/track_presentation/presentation_state.dart';
|
import 'package:spotube/components/track_presentation/presentation_state.dart';
|
||||||
import 'package:spotube/extensions/list.dart';
|
import 'package:spotube/extensions/list.dart';
|
||||||
|
|
||||||
import 'package:spotube/models/connect/connect.dart';
|
import 'package:spotube/models/connect/connect.dart';
|
||||||
import 'package:spotube/provider/audio_player/audio_player.dart';
|
import 'package:spotube/provider/audio_player/audio_player.dart';
|
||||||
import 'package:spotube/provider/connect/connect.dart';
|
import 'package:spotube/provider/connect/connect.dart';
|
||||||
|
@ -3,10 +3,8 @@ import 'dart:io';
|
|||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
|
||||||
import 'package:spotify/spotify.dart' hide Offset;
|
import 'package:spotify/spotify.dart' hide Offset;
|
||||||
import 'package:spotube/collections/assets.gen.dart';
|
import 'package:spotube/collections/assets.gen.dart';
|
||||||
@ -17,20 +15,17 @@ import 'package:spotube/components/dialogs/playlist_add_track_dialog.dart';
|
|||||||
import 'package:spotube/components/dialogs/prompt_dialog.dart';
|
import 'package:spotube/components/dialogs/prompt_dialog.dart';
|
||||||
import 'package:spotube/components/dialogs/track_details_dialog.dart';
|
import 'package:spotube/components/dialogs/track_details_dialog.dart';
|
||||||
import 'package:spotube/components/heart_button/use_track_toggle_like.dart';
|
import 'package:spotube/components/heart_button/use_track_toggle_like.dart';
|
||||||
import 'package:spotube/components/image/universal_image.dart';
|
|
||||||
import 'package:spotube/components/links/artist_link.dart';
|
import 'package:spotube/components/links/artist_link.dart';
|
||||||
import 'package:spotube/extensions/constrains.dart';
|
import 'package:spotube/extensions/constrains.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/extensions/image.dart';
|
|
||||||
import 'package:spotube/models/database/database.dart';
|
import 'package:spotube/models/database/database.dart';
|
||||||
import 'package:spotube/models/local_track.dart';
|
import 'package:spotube/models/local_track.dart';
|
||||||
|
import 'package:spotube/provider/audio_player/audio_player.dart';
|
||||||
import 'package:spotube/provider/authentication/authentication.dart';
|
import 'package:spotube/provider/authentication/authentication.dart';
|
||||||
import 'package:spotube/provider/blacklist_provider.dart';
|
import 'package:spotube/provider/blacklist_provider.dart';
|
||||||
import 'package:spotube/provider/download_manager_provider.dart';
|
import 'package:spotube/provider/download_manager_provider.dart';
|
||||||
import 'package:spotube/provider/local_tracks/local_tracks_provider.dart';
|
import 'package:spotube/provider/local_tracks/local_tracks_provider.dart';
|
||||||
import 'package:spotube/provider/audio_player/audio_player.dart';
|
|
||||||
import 'package:spotube/provider/spotify/spotify.dart';
|
import 'package:spotube/provider/spotify/spotify.dart';
|
||||||
|
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
|
|
||||||
enum TrackOptionValue {
|
enum TrackOptionValue {
|
||||||
@ -56,6 +51,7 @@ class TrackOptions extends HookConsumerWidget {
|
|||||||
final String? playlistId;
|
final String? playlistId;
|
||||||
final ObjectRef<ValueChanged<RelativeRect>?>? showMenuCbRef;
|
final ObjectRef<ValueChanged<RelativeRect>?>? showMenuCbRef;
|
||||||
final Widget? icon;
|
final Widget? icon;
|
||||||
|
|
||||||
const TrackOptions({
|
const TrackOptions({
|
||||||
super.key,
|
super.key,
|
||||||
required this.track,
|
required this.track,
|
||||||
@ -99,7 +95,7 @@ class TrackOptions extends HookConsumerWidget {
|
|||||||
return FadeTransition(opacity: animation, child: child);
|
return FadeTransition(opacity: animation, child: child);
|
||||||
},
|
},
|
||||||
context: context,
|
context: context,
|
||||||
barrierColor: Colors.black.withValues(alpha: 0.5),
|
// barrierColor: Colors.white.withValues(alpha: 0.5),
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return Center(
|
return Center(
|
||||||
child: PlaylistAddTrackDialog(
|
child: PlaylistAddTrackDialog(
|
||||||
@ -159,7 +155,6 @@ class TrackOptions extends HookConsumerWidget {
|
|||||||
await playback.stop();
|
await playback.stop();
|
||||||
await playback.load([track], autoPlay: true);
|
await playback.load([track], autoPlay: true);
|
||||||
|
|
||||||
// we don't have to add those tracks as useEndlessPlayback will do it for us
|
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
await playback.addTrack(track);
|
await playback.addTrack(track);
|
||||||
@ -337,19 +332,20 @@ class TrackOptions extends HookConsumerWidget {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
icon: icon ?? const Icon(SpotubeIcons.moreHorizontal),
|
icon:
|
||||||
|
icon ?? const Icon(SpotubeIcons.moreHorizontal, color: Colors.white),
|
||||||
headings: [
|
headings: [
|
||||||
Basic(
|
Basic(
|
||||||
leading: AspectRatio(
|
leading: const AspectRatio(
|
||||||
aspectRatio: 1,
|
aspectRatio: 1,
|
||||||
child: ClipRRect(
|
// child: ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(10),
|
// borderRadius: BorderRadius.circular(10),
|
||||||
child: UniversalImage(
|
// child: UniversalImage(
|
||||||
path: track.album!.images
|
// path: track.album!.images
|
||||||
.asUrlString(placeholder: ImagePlaceholder.albumArt),
|
// .asUrlString(placeholder: ImagePlaceholder.albumArt),
|
||||||
fit: BoxFit.cover,
|
// fit: BoxFit.cover,
|
||||||
),
|
// ),
|
||||||
),
|
// ),
|
||||||
),
|
),
|
||||||
title: Text(
|
title: Text(
|
||||||
track.name!,
|
track.name!,
|
||||||
|
@ -3,7 +3,6 @@ import 'dart:async';
|
|||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:skeletonizer/skeletonizer.dart';
|
import 'package:skeletonizer/skeletonizer.dart';
|
||||||
@ -307,7 +306,7 @@ class TrackTile extends HookConsumerWidget {
|
|||||||
userPlaylist: userPlaylist,
|
userPlaylist: userPlaylist,
|
||||||
showMenuCbRef: showOptionCbRef,
|
showMenuCbRef: showOptionCbRef,
|
||||||
),
|
),
|
||||||
if (kIsDesktop) const Gap(10),
|
if (kIsDesktop) const Gap(16),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -10,8 +10,11 @@ enum Breakpoint {
|
|||||||
xxl;
|
xxl;
|
||||||
|
|
||||||
bool operator <=(Breakpoint other) => index <= other.index;
|
bool operator <=(Breakpoint other) => index <= other.index;
|
||||||
|
|
||||||
bool operator <(Breakpoint other) => index < other.index;
|
bool operator <(Breakpoint other) => index < other.index;
|
||||||
|
|
||||||
bool operator >(Breakpoint other) => index > other.index;
|
bool operator >(Breakpoint other) => index > other.index;
|
||||||
|
|
||||||
bool operator >=(Breakpoint other) => index >= other.index;
|
bool operator >=(Breakpoint other) => index >= other.index;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,14 +29,19 @@ const Breakpoints = (
|
|||||||
|
|
||||||
extension SliverBreakpoints on SliverConstraints {
|
extension SliverBreakpoints on SliverConstraints {
|
||||||
bool get isXs => crossAxisExtent <= Breakpoints.xs;
|
bool get isXs => crossAxisExtent <= Breakpoints.xs;
|
||||||
|
|
||||||
bool get isSm =>
|
bool get isSm =>
|
||||||
crossAxisExtent > Breakpoints.xs && crossAxisExtent <= Breakpoints.sm;
|
crossAxisExtent > Breakpoints.xs && crossAxisExtent <= Breakpoints.sm;
|
||||||
|
|
||||||
bool get isMd =>
|
bool get isMd =>
|
||||||
crossAxisExtent > Breakpoints.sm && crossAxisExtent <= Breakpoints.md;
|
crossAxisExtent > Breakpoints.sm && crossAxisExtent <= Breakpoints.md;
|
||||||
|
|
||||||
bool get isLg =>
|
bool get isLg =>
|
||||||
crossAxisExtent > Breakpoints.md && crossAxisExtent <= Breakpoints.lg;
|
crossAxisExtent > Breakpoints.md && crossAxisExtent <= Breakpoints.lg;
|
||||||
|
|
||||||
bool get isXl =>
|
bool get isXl =>
|
||||||
crossAxisExtent > Breakpoints.lg && crossAxisExtent <= Breakpoints.xl;
|
crossAxisExtent > Breakpoints.lg && crossAxisExtent <= Breakpoints.xl;
|
||||||
|
|
||||||
bool get is2Xl => crossAxisExtent > Breakpoints.xl;
|
bool get is2Xl => crossAxisExtent > Breakpoints.xl;
|
||||||
|
|
||||||
Breakpoint get breakpoint {
|
Breakpoint get breakpoint {
|
||||||
@ -46,26 +54,37 @@ extension SliverBreakpoints on SliverConstraints {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get lgAndUp => isLg || isXl || is2Xl;
|
bool get lgAndUp => isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get xlAndUp => isXl || is2Xl;
|
bool get xlAndUp => isXl || is2Xl;
|
||||||
|
|
||||||
bool get smAndDown => isXs || isSm;
|
bool get smAndDown => isXs || isSm;
|
||||||
|
|
||||||
bool get mdAndDown => isXs || isSm || isMd;
|
bool get mdAndDown => isXs || isSm || isMd;
|
||||||
|
|
||||||
bool get lgAndDown => isXs || isSm || isMd || isLg;
|
bool get lgAndDown => isXs || isSm || isMd || isLg;
|
||||||
|
|
||||||
bool get xlAndDown => isXs || isSm || isMd || isLg || isXl;
|
bool get xlAndDown => isXs || isSm || isMd || isLg || isXl;
|
||||||
}
|
}
|
||||||
|
|
||||||
extension ContainerBreakpoints on BoxConstraints {
|
extension ContainerBreakpoints on BoxConstraints {
|
||||||
bool get isXs => biggest.width <= Breakpoints.xs;
|
bool get isXs => biggest.width <= Breakpoints.xs;
|
||||||
|
|
||||||
bool get isSm =>
|
bool get isSm =>
|
||||||
biggest.width > Breakpoints.xs && biggest.width <= Breakpoints.sm;
|
biggest.width > Breakpoints.xs && biggest.width <= Breakpoints.sm;
|
||||||
|
|
||||||
bool get isMd =>
|
bool get isMd =>
|
||||||
biggest.width > Breakpoints.sm && biggest.width <= Breakpoints.md;
|
biggest.width > Breakpoints.sm && biggest.width <= Breakpoints.md;
|
||||||
|
|
||||||
bool get isLg =>
|
bool get isLg =>
|
||||||
biggest.width > Breakpoints.md && biggest.width <= Breakpoints.lg;
|
biggest.width > Breakpoints.md && biggest.width <= Breakpoints.lg;
|
||||||
|
|
||||||
bool get isXl =>
|
bool get isXl =>
|
||||||
biggest.width > Breakpoints.lg && biggest.width <= Breakpoints.xl;
|
biggest.width > Breakpoints.lg && biggest.width <= Breakpoints.xl;
|
||||||
|
|
||||||
bool get is2Xl => biggest.width > Breakpoints.xl;
|
bool get is2Xl => biggest.width > Breakpoints.xl;
|
||||||
|
|
||||||
Breakpoint get breakpoint {
|
Breakpoint get breakpoint {
|
||||||
@ -78,50 +97,78 @@ extension ContainerBreakpoints on BoxConstraints {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get lgAndUp => isLg || isXl || is2Xl;
|
bool get lgAndUp => isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get xlAndUp => isXl || is2Xl;
|
bool get xlAndUp => isXl || is2Xl;
|
||||||
|
|
||||||
bool get smAndDown => isXs || isSm;
|
bool get smAndDown => isXs || isSm;
|
||||||
|
|
||||||
bool get mdAndDown => isXs || isSm || isMd;
|
bool get mdAndDown => isXs || isSm || isMd;
|
||||||
|
|
||||||
bool get lgAndDown => isXs || isSm || isMd || isLg;
|
bool get lgAndDown => isXs || isSm || isMd || isLg;
|
||||||
|
|
||||||
bool get xlAndDown => isXs || isSm || isMd || isLg || isXl;
|
bool get xlAndDown => isXs || isSm || isMd || isLg || isXl;
|
||||||
}
|
}
|
||||||
|
|
||||||
extension ScreenBreakpoints on MediaQueryData {
|
extension ScreenBreakpoints on MediaQueryData {
|
||||||
bool get isXs => size.width <= Breakpoints.xs;
|
bool get isXs => size.width <= Breakpoints.xs;
|
||||||
|
|
||||||
bool get isSm => size.width > Breakpoints.xs && size.width <= Breakpoints.sm;
|
bool get isSm => size.width > Breakpoints.xs && size.width <= Breakpoints.sm;
|
||||||
|
|
||||||
bool get isMd => size.width > Breakpoints.sm && size.width <= Breakpoints.md;
|
bool get isMd => size.width > Breakpoints.sm && size.width <= Breakpoints.md;
|
||||||
|
|
||||||
bool get isLg => size.width > Breakpoints.md && size.width <= Breakpoints.lg;
|
bool get isLg => size.width > Breakpoints.md && size.width <= Breakpoints.lg;
|
||||||
|
|
||||||
bool get isXl => size.width > Breakpoints.lg && size.width <= Breakpoints.xl;
|
bool get isXl => size.width > Breakpoints.lg && size.width <= Breakpoints.xl;
|
||||||
|
|
||||||
bool get is2Xl => size.width > Breakpoints.xl;
|
bool get is2Xl => size.width > Breakpoints.xl;
|
||||||
|
|
||||||
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get lgAndUp => isLg || isXl || is2Xl;
|
bool get lgAndUp => isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get xlAndUp => isXl || is2Xl;
|
bool get xlAndUp => isXl || is2Xl;
|
||||||
|
|
||||||
bool get smAndDown => isXs || isSm;
|
bool get smAndDown => isXs || isSm;
|
||||||
|
|
||||||
bool get mdAndDown => isXs || isSm || isMd;
|
bool get mdAndDown => isXs || isSm || isMd;
|
||||||
|
|
||||||
bool get lgAndDown => isXs || isSm || isMd || isLg;
|
bool get lgAndDown => isXs || isSm || isMd || isLg;
|
||||||
|
|
||||||
bool get xlAndDown => isXs || isSm || isMd || isLg || isXl;
|
bool get xlAndDown => isXs || isSm || isMd || isLg || isXl;
|
||||||
}
|
}
|
||||||
|
|
||||||
extension SizeBreakpoints on Size {
|
extension SizeBreakpoints on Size {
|
||||||
bool get isXs => width <= Breakpoints.xs;
|
bool get isXs => width <= Breakpoints.xs;
|
||||||
|
|
||||||
bool get isSm => width > Breakpoints.xs && width <= Breakpoints.sm;
|
bool get isSm => width > Breakpoints.xs && width <= Breakpoints.sm;
|
||||||
|
|
||||||
bool get isMd => width > Breakpoints.sm && width <= Breakpoints.md;
|
bool get isMd => width > Breakpoints.sm && width <= Breakpoints.md;
|
||||||
|
|
||||||
bool get isLg => width > Breakpoints.md && width <= Breakpoints.lg;
|
bool get isLg => width > Breakpoints.md && width <= Breakpoints.lg;
|
||||||
|
|
||||||
bool get isXl => width > Breakpoints.lg && width <= Breakpoints.xl;
|
bool get isXl => width > Breakpoints.lg && width <= Breakpoints.xl;
|
||||||
|
|
||||||
bool get is2Xl => width > Breakpoints.xl;
|
bool get is2Xl => width > Breakpoints.xl;
|
||||||
|
|
||||||
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get lgAndUp => isLg || isXl || is2Xl;
|
bool get lgAndUp => isLg || isXl || is2Xl;
|
||||||
|
|
||||||
bool get xlAndUp => isXl || is2Xl;
|
bool get xlAndUp => isXl || is2Xl;
|
||||||
|
|
||||||
bool get smAndDown => isXs || isSm;
|
bool get smAndDown => isXs || isSm;
|
||||||
|
|
||||||
bool get mdAndDown => isXs || isSm || isMd;
|
bool get mdAndDown => isXs || isSm || isMd;
|
||||||
|
|
||||||
bool get lgAndDown => isXs || isSm || isMd || isLg;
|
bool get lgAndDown => isXs || isSm || isMd || isLg;
|
||||||
|
|
||||||
bool get xlAndDown => isXs || isSm || isMd || isLg || isXl;
|
bool get xlAndDown => isXs || isSm || isMd || isLg || isXl;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import 'package:duration/locale.dart';
|
|
||||||
import 'package:duration/duration.dart';
|
import 'package:duration/duration.dart';
|
||||||
|
import 'package:duration/locale.dart';
|
||||||
|
|
||||||
extension DurationToHumanReadableString on Duration {
|
extension DurationToHumanReadableString on Duration {
|
||||||
String toHumanReadableString({padZero = true}) {
|
String toHumanReadableString({padZero = true}) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
import 'package:collection/collection.dart';
|
||||||
import 'package:spotify/spotify.dart';
|
import 'package:spotify/spotify.dart';
|
||||||
import 'package:spotube/collections/assets.gen.dart';
|
import 'package:spotube/collections/assets.gen.dart';
|
||||||
import 'package:spotube/utils/primitive_utils.dart';
|
import 'package:spotube/utils/primitive_utils.dart';
|
||||||
import 'package:collection/collection.dart';
|
|
||||||
|
|
||||||
enum ImagePlaceholder {
|
enum ImagePlaceholder {
|
||||||
albumArt,
|
albumArt,
|
||||||
|
@ -1,15 +1,17 @@
|
|||||||
import 'package:html_unescape/html_unescape.dart';
|
|
||||||
import 'package:html/parser.dart';
|
import 'package:html/parser.dart';
|
||||||
|
import 'package:html_unescape/html_unescape.dart';
|
||||||
|
|
||||||
final htmlEscape = HtmlUnescape();
|
final htmlEscape = HtmlUnescape();
|
||||||
|
|
||||||
extension UnescapeHtml on String {
|
extension UnescapeHtml on String {
|
||||||
String cleanHtml() => parse("<p>$this</p>").documentElement!.text;
|
String cleanHtml() => parse("<p>$this</p>").documentElement!.text;
|
||||||
|
|
||||||
String unescapeHtml() => htmlEscape.convert(this);
|
String unescapeHtml() => htmlEscape.convert(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
extension NullableUnescapeHtml on String? {
|
extension NullableUnescapeHtml on String? {
|
||||||
String? cleanHtml() => this?.cleanHtml();
|
String? cleanHtml() => this?.cleanHtml();
|
||||||
|
|
||||||
String? unescapeHtml() => this?.unescapeHtml();
|
String? unescapeHtml() => this?.unescapeHtml();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
//
|
|
||||||
// Generated file. Do not edit.
|
|
||||||
//
|
|
||||||
|
|
||||||
// ignore_for_file: directives_ordering
|
|
||||||
// ignore_for_file: lines_longer_than_80_chars
|
|
||||||
// ignore_for_file: depend_on_referenced_packages
|
|
||||||
|
|
||||||
import 'package:audio_service_web/audio_service_web.dart';
|
|
||||||
import 'package:audio_session/audio_session_web.dart';
|
|
||||||
import 'package:shared_preferences_web/shared_preferences_web.dart';
|
|
||||||
import 'package:url_launcher_web/url_launcher_web.dart';
|
|
||||||
|
|
||||||
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
|
|
||||||
|
|
||||||
// ignore: public_member_api_docs
|
|
||||||
void registerPlugins(Registrar registrar) {
|
|
||||||
AudioServiceWeb.registerWith(registrar);
|
|
||||||
AudioSessionWeb.registerWith(registrar);
|
|
||||||
SharedPreferencesPlugin.registerWith(registrar);
|
|
||||||
UrlLauncherPlugin.registerWith(registrar);
|
|
||||||
registrar.registerMessageHandler();
|
|
||||||
}
|
|
@ -1,11 +1,10 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:local_notifier/local_notifier.dart';
|
||||||
import 'package:spotube/hooks/configurators/use_window_listener.dart';
|
import 'package:spotube/hooks/configurators/use_window_listener.dart';
|
||||||
import 'package:spotube/models/database/database.dart';
|
import 'package:spotube/models/database/database.dart';
|
||||||
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
||||||
|
|
||||||
import 'package:local_notifier/local_notifier.dart';
|
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
|
||||||
|
@ -2,12 +2,12 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:app_links/app_links.dart';
|
import 'package:app_links/app_links.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
import 'package:flutter_sharing_intent/flutter_sharing_intent.dart';
|
||||||
|
import 'package:flutter_sharing_intent/model/sharing_file.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:spotube/collections/routes.dart';
|
import 'package:spotube/collections/routes.dart';
|
||||||
import 'package:spotube/collections/routes.gr.dart';
|
import 'package:spotube/collections/routes.gr.dart';
|
||||||
import 'package:spotube/provider/spotify/spotify.dart';
|
import 'package:spotube/provider/spotify/spotify.dart';
|
||||||
import 'package:flutter_sharing_intent/flutter_sharing_intent.dart';
|
|
||||||
import 'package:flutter_sharing_intent/model/sharing_file.dart';
|
|
||||||
import 'package:spotube/services/logger/logger.dart';
|
import 'package:spotube/services/logger/logger.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:disable_battery_optimization/disable_battery_optimization.dart';
|
import 'package:disable_battery_optimization/disable_battery_optimization.dart';
|
||||||
|
|
||||||
import 'package:spotube/hooks/utils/use_async_effect.dart';
|
import 'package:spotube/hooks/utils/use_async_effect.dart';
|
||||||
import 'package:spotube/services/kv_store/kv_store.dart';
|
import 'package:spotube/services/kv_store/kv_store.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import 'package:spotube/services/logger/logger.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:spotify/spotify.dart';
|
import 'package:spotify/spotify.dart';
|
||||||
import 'package:spotube/provider/authentication/authentication.dart';
|
|
||||||
import 'package:spotube/provider/audio_player/audio_player.dart';
|
import 'package:spotube/provider/audio_player/audio_player.dart';
|
||||||
|
import 'package:spotube/provider/authentication/authentication.dart';
|
||||||
import 'package:spotube/provider/spotify/spotify.dart';
|
import 'package:spotube/provider/spotify/spotify.dart';
|
||||||
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
||||||
import 'package:spotube/services/audio_player/audio_player.dart';
|
import 'package:spotube/services/audio_player/audio_player.dart';
|
||||||
|
import 'package:spotube/services/logger/logger.dart';
|
||||||
|
|
||||||
void useEndlessPlayback(WidgetRef ref) {
|
void useEndlessPlayback(WidgetRef ref) {
|
||||||
final auth = ref.watch(authenticationProvider);
|
final auth = ref.watch(authenticationProvider);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:device_info_plus/device_info_plus.dart';
|
import 'package:device_info_plus/device_info_plus.dart';
|
||||||
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
|
|
||||||
bool useHasTouch() {
|
bool useHasTouch() {
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:spotube/utils/platform.dart';
|
import 'package:spotube/utils/platform.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:scroll_to_index/scroll_to_index.dart';
|
import 'package:scroll_to_index/scroll_to_index.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
/// Creates [AutoScrollController] that will be disposed automatically.
|
/// Creates [AutoScrollController] that will be disposed automatically.
|
||||||
///
|
///
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:package_info_plus/package_info_plus.dart';
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
PackageInfo usePackageInfo<PageKeyType, ItemType>({
|
PackageInfo usePackageInfo<PageKeyType, ItemType>({
|
||||||
/// The app name. `CFBundleDisplayName` on iOS, `application/label` on Android.
|
/// The app name. `CFBundleDisplayName` on iOS, `application/label` on Android.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:spotube/extensions/constrains.dart';
|
import 'package:spotube/extensions/constrains.dart';
|
||||||
|
|
||||||
T useBreakpointValue<T>({
|
T useBreakpointValue<T>({
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
T useBrightnessValue<T>(
|
T useBrightnessValue<T>(
|
||||||
T lightValue,
|
T lightValue,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
|
|
||||||
VoidCallback useCustomStatusBarColor(
|
VoidCallback useCustomStatusBarColor(
|
||||||
Color color,
|
Color color,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:palette_generator/palette_generator.dart';
|
import 'package:palette_generator/palette_generator.dart';
|
||||||
|
import 'package:shadcn_flutter/shadcn_flutter.dart';
|
||||||
import 'package:spotube/components/image/universal_image.dart';
|
import 'package:spotube/components/image/universal_image.dart';
|
||||||
|
|
||||||
final _paletteColorState = StateProvider<PaletteColor>(
|
final _paletteColorState = StateProvider<PaletteColor>(
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
"mini_player": "مشغل مصغر",
|
"mini_player": "مشغل مصغر",
|
||||||
"slide_to_seek": "قم بالتمرير للبحث للأمام أو للخلف",
|
"slide_to_seek": "قم بالتمرير للبحث للأمام أو للخلف",
|
||||||
"shuffle_playlist": "قائمة تشغيل عشوائية",
|
"shuffle_playlist": "قائمة تشغيل عشوائية",
|
||||||
"unshuffle_playlist": "إلغاء ترتيب قائمة التشغيل",
|
"not_shuffle_playlist": "إلغاء ترتيب قائمة التشغيل",
|
||||||
"previous_track": "المقطوعة السابقة",
|
"previous_track": "المقطوعة السابقة",
|
||||||
"next_track": "مقطوعة جديدة",
|
"next_track": "مقطوعة جديدة",
|
||||||
"pause_playback": "إيقاف التشغيل مؤقتًا",
|
"pause_playback": "إيقاف التشغيل مؤقتًا",
|
||||||
@ -175,7 +175,7 @@
|
|||||||
"first_go_to": "أولا، اذهب إلى",
|
"first_go_to": "أولا، اذهب إلى",
|
||||||
"login_if_not_logged_in": "وتسجيل الدخول/الاشتراك إذا لم تقم بتسجيل الدخول",
|
"login_if_not_logged_in": "وتسجيل الدخول/الاشتراك إذا لم تقم بتسجيل الدخول",
|
||||||
"step_2": "الخطوة 2",
|
"step_2": "الخطوة 2",
|
||||||
"step_2_steps": "1. بمجرد تسجيل الدخول، اضغط على F12 أو انقر بزر الماوس الأيمن > فحص لفتح أدوات تطوير المتصفح.\n2. ثم انتقل إلى علامة التبويب \"التطبيقات\" (Chrome وEdge وBrave وما إلى ذلك.) أو علامة التبويب \"التخزين\" (Firefox وPalemoon وما إلى ذلك..)\n3. انتقل إلى قسم \"ملفات تعريف الارتباط\" ثم القسم الفرعي \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. بمجرد تسجيل الدخول، اضغط على F12 أو انقر بزر الماوس الأيمن > فحص لفتح أدوات تطوير المتصفح.\n2. ثم انتقل إلى علامة التبويب \"التطبيقات\" (Chrome وEdge وBrave وما إلى ذلك.) أو علامة التبويب \"التخزين\" (Firefox وPale Moon وما إلى ذلك..)\n3. انتقل إلى قسم \"ملفات تعريف الارتباط\" ثم القسم الفرعي \"https://accounts.spotify.com\"",
|
||||||
"step_3": "الخطوة 3",
|
"step_3": "الخطوة 3",
|
||||||
"success_emoji": "نجاح 🥳",
|
"success_emoji": "نجاح 🥳",
|
||||||
"success_message": "لقد قمت الآن بتسجيل الدخول بنجاح باستخدام حساب Spotify الخاص بك. عمل جيد يا صديقي!",
|
"success_message": "لقد قمت الآن بتسجيل الدخول بنجاح باستخدام حساب Spotify الخاص بك. عمل جيد يا صديقي!",
|
||||||
@ -196,13 +196,13 @@
|
|||||||
"add_genres": "أضف الأنواع",
|
"add_genres": "أضف الأنواع",
|
||||||
"country": "دولة",
|
"country": "دولة",
|
||||||
"number_of_tracks_generate": "عدد المسارات المقطوعات المراد توليدها",
|
"number_of_tracks_generate": "عدد المسارات المقطوعات المراد توليدها",
|
||||||
"acousticness": "صوتية",
|
"not_acoustic": "صوتية",
|
||||||
"danceability": "قدرة على الرقص",
|
"dance_ability": "قدرة على الرقص",
|
||||||
"energy": "طاقة",
|
"energy": "طاقة",
|
||||||
"instrumentalness": "نفعية",
|
"not_instrumental": "نفعية",
|
||||||
"liveness": "حيوية",
|
"liveness": "حيوية",
|
||||||
"loudness": "بريق",
|
"loudness": "بريق",
|
||||||
"speechiness": "كلام",
|
"talkative": "كلام",
|
||||||
"valence": "تكافؤ",
|
"valence": "تكافؤ",
|
||||||
"popularity": "شعبية",
|
"popularity": "شعبية",
|
||||||
"key": "مفتاح",
|
"key": "مفتاح",
|
||||||
@ -241,7 +241,7 @@
|
|||||||
"sort_newest": "الترتيب حسب الأقدم",
|
"sort_newest": "الترتيب حسب الأقدم",
|
||||||
"sort_oldest": "الترتيب حسب الأقدم",
|
"sort_oldest": "الترتيب حسب الأقدم",
|
||||||
"sleep_timer": "مؤقت النوم",
|
"sleep_timer": "مؤقت النوم",
|
||||||
"mins": "{minutes} دقائق",
|
"minutes": "{minutes} دقائق",
|
||||||
"hours": "{hours} ساعات",
|
"hours": "{hours} ساعات",
|
||||||
"hour": "{hours} ساعة",
|
"hour": "{hours} ساعة",
|
||||||
"custom_hours": "ساعات مخصصة",
|
"custom_hours": "ساعات مخصصة",
|
||||||
@ -252,7 +252,7 @@
|
|||||||
"audio_source": "مصدر الصوت",
|
"audio_source": "مصدر الصوت",
|
||||||
"ok": "حسسناً",
|
"ok": "حسسناً",
|
||||||
"failed_to_encrypt": "فشل في التشفير",
|
"failed_to_encrypt": "فشل في التشفير",
|
||||||
"encryption_failed_warning": "يستخدم Spotube التشفير لتخزين بياناتك بشكل آمن. لكنها فشلت في القيام بذلك. لذلك سيعود الأمر إلى التخزين غير الآمن\nإذا كنت تستخدم Linux، فيرجى التأكد من تثبيت أي خدمة سرية (gnome-keyring، kde-wallet، keepassxc، إلخ)",
|
"encryption_failed_warning": "يستخدم Spotube التشفير لتخزين بياناتك بشكل آمن. لكنها فشلت في القيام بذلك. لذلك سيعود الأمر إلى التخزين غير الآمن\nإذا كنت تستخدم Linux، فيرجى التأكد من تثبيت أي خدمة سرية (gnome-keyring، kde-wallet، KeePassXC، إلخ)",
|
||||||
"querying_info": "جارٍ الاستعلام عن معلومات...",
|
"querying_info": "جارٍ الاستعلام عن معلومات...",
|
||||||
"piped_api_down": "Piped API معطلة",
|
"piped_api_down": "Piped API معطلة",
|
||||||
"piped_down_error_instructions": "المثيل الموجه {pipedInstance} معطل حاليًا\n\nيمكنك إما تغيير المثيل أو تغيير 'نوع API' إلى YouTube API الرسمي\n\nتأكد من إعادة تشغيل التطبيق بعد التغيير",
|
"piped_down_error_instructions": "المثيل الموجه {pipedInstance} معطل حاليًا\n\nيمكنك إما تغيير المثيل أو تغيير 'نوع API' إلى YouTube API الرسمي\n\nتأكد من إعادة تشغيل التطبيق بعد التغيير",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "الأغاني المذاعة",
|
"streamed_songs": "الأغاني المذاعة",
|
||||||
"count_streams": "{count} بث",
|
"count_streams": "{count} بث",
|
||||||
"owned_by_you": "مملوك لك",
|
"owned_by_you": "مملوك لك",
|
||||||
"copied_shareurl_to_clipboard": "تم نسخ {shareUrl} إلى الحافظة",
|
"copied_share_url_to_clipboard": "تم نسخ {shareUrl} إلى الحافظة",
|
||||||
"spotify_hipotetical_calculation": "*هذا محسوب بناءً على الدفع لكل بث من سبوتيفاي\nبقيمة 0.003 إلى 0.005 دولار. هذا حساب افتراضي\nلإعطاء المستخدم فكرة عن المبلغ الذي\nكان سيدفعه للفنانين إذا كانوا قد استمعوا\nإلى أغنيتهم على سبوتيفاي.",
|
"spotify_hypothetical_calculation": "*هذا محسوب بناءً على الدفع لكل بث من سبوتيفاي\nبقيمة 0.003 إلى 0.005 دولار. هذا حساب افتراضي\nلإعطاء المستخدم فكرة عن المبلغ الذي\nكان سيدفعه للفنانين إذا كانوا قد استمعوا\nإلى أغنيتهم على سبوتيفاي.",
|
||||||
"count_mins": "{minutes} دقيقة",
|
"count_minutes": "{minutes} دقيقة",
|
||||||
"summary_minutes": "الدقائق",
|
"summary_minutes": "الدقائق",
|
||||||
"summary_listened_to_music": "استمعت إلى الموسيقى",
|
"summary_listened_to_music": "استمعت إلى الموسيقى",
|
||||||
"summary_songs": "أغاني",
|
"summary_songs": "أغاني",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "মিনি প্লেয়ার",
|
"mini_player": "মিনি প্লেয়ার",
|
||||||
"slide_to_seek": "গান সামনে বা পিছনে নিতে স্লাইড করুন",
|
"slide_to_seek": "গান সামনে বা পিছনে নিতে স্লাইড করুন",
|
||||||
"shuffle_playlist": "প্লেলিস্ট এলোমেলো করুন",
|
"shuffle_playlist": "প্লেলিস্ট এলোমেলো করুন",
|
||||||
"unshuffle_playlist": "প্লেলিস্ট আগের মতো করুন",
|
"not_shuffle_playlist": "প্লেলিস্ট আগের মতো করুন",
|
||||||
"previous_track": "আগের গানের ট্র্যাক",
|
"previous_track": "আগের গানের ট্র্যাক",
|
||||||
"next_track": "পরের গানের ট্র্যাক",
|
"next_track": "পরের গানের ট্র্যাক",
|
||||||
"pause_playback": "গান বন্ধ করুন",
|
"pause_playback": "গান বন্ধ করুন",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "প্রথমে যান",
|
"first_go_to": "প্রথমে যান",
|
||||||
"login_if_not_logged_in": "এবং যদি আপনি লগইন/সাইন-আপ না থাকেন তবে লগইন/সাইন-আপ করুন",
|
"login_if_not_logged_in": "এবং যদি আপনি লগইন/সাইন-আপ না থাকেন তবে লগইন/সাইন-আপ করুন",
|
||||||
"step_2": "ধাপ 2",
|
"step_2": "ধাপ 2",
|
||||||
"step_2_steps": "১. একবার আপনি লগ ইন করলে, ব্রাউজার ডেভটুল খুলতে F12 বা মাউসের রাইট ক্লিক > \"Inspect to open Browser DevTools\" টিপুন।\n২. তারপর \"Application\" ট্যাবে যান (Chrome, Edge, Brave etc..) অথবা \"Storage\" Tab (Firefox, Palemoon etc..)\n৩. \"Cookies \" বিভাগে যান তারপর \"https://accounts.spotify.com\" উপবিভাগে যান",
|
"step_2_steps": "১. একবার আপনি লগ ইন করলে, ব্রাউজার ডেভটুল খুলতে F12 বা মাউসের রাইট ক্লিক > \"Inspect to open Browser DevTools\" টিপুন।\n২. তারপর \"Application\" ট্যাবে যান (Chrome, Edge, Brave etc..) অথবা \"Storage\" Tab (Firefox, Pale Moon etc..)\n৩. \"Cookies \" বিভাগে যান তারপর \"https://accounts.spotify.com\" উপবিভাগে যান",
|
||||||
"step_3": "ধাপ 3",
|
"step_3": "ধাপ 3",
|
||||||
"success_emoji": "আমরা সফল🥳",
|
"success_emoji": "আমরা সফল🥳",
|
||||||
"success_message": "এখন আপনি সফলভাবে আপনার Spotify অ্যাকাউন্ট দিয়ে লগ ইন করেছেন। সাধুভাত আপনাকে",
|
"success_message": "এখন আপনি সফলভাবে আপনার Spotify অ্যাকাউন্ট দিয়ে লগ ইন করেছেন। সাধুভাত আপনাকে",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "গানের ধরণ যুক্ত করুন",
|
"add_genres": "গানের ধরণ যুক্ত করুন",
|
||||||
"country": "দেশ",
|
"country": "দেশ",
|
||||||
"number_of_tracks_generate": "উত্পাদিত ট্র্যাকের সংখ্যা",
|
"number_of_tracks_generate": "উত্পাদিত ট্র্যাকের সংখ্যা",
|
||||||
"acousticness": "অধ্যাত্মিকতা",
|
"not_acoustic": "অধ্যাত্মিকতা",
|
||||||
"danceability": "নৃত্যমূলকতা",
|
"dance_ability": "নৃত্যমূলকতা",
|
||||||
"energy": "শক্তি",
|
"energy": "শক্তি",
|
||||||
"instrumentalness": "সাধারণতা",
|
"not_instrumental": "সাধারণতা",
|
||||||
"liveness": "জীবনমুক্ততা",
|
"liveness": "জীবনমুক্ততা",
|
||||||
"loudness": "স্বরের উচ্চতা",
|
"loudness": "স্বরের উচ্চতা",
|
||||||
"speechiness": "বক্তব্যমূলকতা",
|
"talkative": "বক্তব্যমূলকতা",
|
||||||
"valence": "সন্তোষমূলকতা",
|
"valence": "সন্তোষমূলকতা",
|
||||||
"popularity": "জনপ্রিয়তা",
|
"popularity": "জনপ্রিয়তা",
|
||||||
"key": "কী",
|
"key": "কী",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "নতুনতম অনুসারে সাজান",
|
"sort_newest": "নতুনতম অনুসারে সাজান",
|
||||||
"sort_oldest": "পুরানোতম অনুসারে সাজান",
|
"sort_oldest": "পুরানোতম অনুসারে সাজান",
|
||||||
"sleep_timer": "স্লীপ টাইমার",
|
"sleep_timer": "স্লীপ টাইমার",
|
||||||
"mins": "{minutes} মিনিট",
|
"minutes": "{minutes} মিনিট",
|
||||||
"hours": "{hours} ঘন্টা",
|
"hours": "{hours} ঘন্টা",
|
||||||
"hour": "{hours} ঘন্টা",
|
"hour": "{hours} ঘন্টা",
|
||||||
"custom_hours": "কাস্টম ঘন্টা",
|
"custom_hours": "কাস্টম ঘন্টা",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "অডিও উৎস",
|
"audio_source": "অডিও উৎস",
|
||||||
"ok": "ঠিক আছে",
|
"ok": "ঠিক আছে",
|
||||||
"failed_to_encrypt": "এনক্রিপ্ট করা ব্যর্থ হয়েছে",
|
"failed_to_encrypt": "এনক্রিপ্ট করা ব্যর্থ হয়েছে",
|
||||||
"encryption_failed_warning": "Spotube আপনার তথ্যগুলি নিরাপদভাবে স্টোর করতে এনক্রিপশন ব্যবহার করে। কিন্তু এটি ব্যর্থ হয়েছে। তাই এটি অনিরাপদ স্টোরে ফলফল হবে\nযদি আপনি Linux ব্যবহার করেন, তবে দয়া করে নিশ্চিত হউন যে আপনার কোনও সিক্রেট-সার্ভিস gnome-keyring, kde-wallet, keepassxc ইত্যাদি ইনস্টল করা আছে",
|
"encryption_failed_warning": "Spotube আপনার তথ্যগুলি নিরাপদভাবে স্টোর করতে এনক্রিপশন ব্যবহার করে। কিন্তু এটি ব্যর্থ হয়েছে। তাই এটি অনিরাপদ স্টোরে ফলফল হবে\nযদি আপনি Linux ব্যবহার করেন, তবে দয়া করে নিশ্চিত হউন যে আপনার কোনও সিক্রেট-সার্ভিস gnome-keyring, kde-wallet, KeePassXC ইত্যাদি ইনস্টল করা আছে",
|
||||||
"querying_info": "তথ্য অনুসন্ধান করা হচ্ছে",
|
"querying_info": "তথ্য অনুসন্ধান করা হচ্ছে",
|
||||||
"piped_api_down": "পাইপড API ডাউন আছে",
|
"piped_api_down": "পাইপড API ডাউন আছে",
|
||||||
"piped_down_error_instructions": "বর্তমানে পাইপড ইনস্ট্যান্স {pipedInstance} ডাউন আছে\n\nইনস্ট্যান্স পরিবর্তন করুন অথবা 'API টাইপ' পরিবর্তন করুন অফিসিয়াল ইউটিউব API হতে\n\nপরিবর্তনের পরে অ্যাপটি পুনরায় চালানোর নিশ্চিত করুন",
|
"piped_down_error_instructions": "বর্তমানে পাইপড ইনস্ট্যান্স {pipedInstance} ডাউন আছে\n\nইনস্ট্যান্স পরিবর্তন করুন অথবা 'API টাইপ' পরিবর্তন করুন অফিসিয়াল ইউটিউব API হতে\n\nপরিবর্তনের পরে অ্যাপটি পুনরায় চালানোর নিশ্চিত করুন",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "স্ট্রিম করা গান",
|
"streamed_songs": "স্ট্রিম করা গান",
|
||||||
"count_streams": "{count} বার স্ট্রিম",
|
"count_streams": "{count} বার স্ট্রিম",
|
||||||
"owned_by_you": "আপনার মালিকানাধীন",
|
"owned_by_you": "আপনার মালিকানাধীন",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} ক্লিপবোর্ডে কপি করা হয়েছে",
|
"copied_share_url_to_clipboard": "{shareUrl} ক্লিপবোর্ডে কপি করা হয়েছে",
|
||||||
"spotify_hipotetical_calculation": "*এটি স্পোটিফাইয়ের প্রতি স্ট্রিম\n$0.003 থেকে $0.005 পেআউটের ভিত্তিতে গণনা করা হয়েছে। এটি একটি ধারণাগত\nগণনা ব্যবহারকারীদেরকে জানাতে দেয় যে কত টাকা\nতারা শিল্পীদের দিতো যদি তারা স্পোটিফাইতে\nতাদের গান শুনতেন।",
|
"spotify_hypothetical_calculation": "*এটি স্পোটিফাইয়ের প্রতি স্ট্রিম\n$0.003 থেকে $0.005 পেআউটের ভিত্তিতে গণনা করা হয়েছে। এটি একটি ধারণাগত\nগণনা ব্যবহারকারীদেরকে জানাতে দেয় যে কত টাকা\nতারা শিল্পীদের দিতো যদি তারা স্পোটিফাইতে\nতাদের গান শুনতেন।",
|
||||||
"count_mins": "{minutes} মিনিট",
|
"count_minutes": "{minutes} মিনিট",
|
||||||
"summary_minutes": "মিনিট",
|
"summary_minutes": "মিনিট",
|
||||||
"summary_listened_to_music": "সঙ্গীত শুনেছেন",
|
"summary_listened_to_music": "সঙ্গীত শুনেছেন",
|
||||||
"summary_songs": "গান",
|
"summary_songs": "গান",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "Reproductor Petit",
|
"mini_player": "Reproductor Petit",
|
||||||
"slide_to_seek": "Lliscar per cercar endavant o endarrere",
|
"slide_to_seek": "Lliscar per cercar endavant o endarrere",
|
||||||
"shuffle_playlist": "Mesclar la llista de reproducció",
|
"shuffle_playlist": "Mesclar la llista de reproducció",
|
||||||
"unshuffle_playlist": "No mesclar la llista de reproducció",
|
"not_shuffle_playlist": "No mesclar la llista de reproducció",
|
||||||
"previous_track": "Cançó anterior",
|
"previous_track": "Cançó anterior",
|
||||||
"next_track": "Canço següent",
|
"next_track": "Canço següent",
|
||||||
"pause_playback": "Pausar reproducció",
|
"pause_playback": "Pausar reproducció",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "Primer, vagi a",
|
"first_go_to": "Primer, vagi a",
|
||||||
"login_if_not_logged_in": "i iniciï sessió/registri el seu compte si no ho ha fet encara",
|
"login_if_not_logged_in": "i iniciï sessió/registri el seu compte si no ho ha fet encara",
|
||||||
"step_2": "Pas 2",
|
"step_2": "Pas 2",
|
||||||
"step_2_steps": "1. Una vegada que hagi iniciat sessió, premi F12 o faci clic dret amb el ratolí > Inspeccionar per obrir les eines de desenvolulpador del navegador.\n2. Després vagi a la pestanya \"Application\" (Chrome, Edge, Brave, etc.) o \"Storage\" (Firefox, Palemoon, etc.)\n3. Vagi a la secció \"Cookies\" i després a la subsecció \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Una vegada que hagi iniciat sessió, premi F12 o faci clic dret amb el ratolí > Inspeccionar per obrir les eines de desenvolulpador del navegador.\n2. Després vagi a la pestanya \"Application\" (Chrome, Edge, Brave, etc.) o \"Storage\" (Firefox, Pale Moon, etc.)\n3. Vagi a la secció \"Cookies\" i després a la subsecció \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Pas 3",
|
"step_3": "Pas 3",
|
||||||
"success_emoji": "Èxit! 🥳",
|
"success_emoji": "Èxit! 🥳",
|
||||||
"success_message": "Ara has iniciat sessió amb èxit al teu compte de Spotify. Bona feina!",
|
"success_message": "Ara has iniciat sessió amb èxit al teu compte de Spotify. Bona feina!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "Afegir Gèneres",
|
"add_genres": "Afegir Gèneres",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
"number_of_tracks_generate": "Número de cançons a generar",
|
"number_of_tracks_generate": "Número de cançons a generar",
|
||||||
"acousticness": "Acústica",
|
"not_acoustic": "Acústica",
|
||||||
"danceability": "Ballabilitat",
|
"dance_ability": "Ballabilitat",
|
||||||
"energy": "Energia",
|
"energy": "Energia",
|
||||||
"instrumentalness": "Instrumental",
|
"not_instrumental": "Instrumental",
|
||||||
"liveness": "En viu",
|
"liveness": "En viu",
|
||||||
"loudness": "Sonoritat",
|
"loudness": "Sonoritat",
|
||||||
"speechiness": "Parla",
|
"talkative": "Parla",
|
||||||
"valence": "Valencia",
|
"valence": "Valencia",
|
||||||
"popularity": "Popularidad",
|
"popularity": "Popularidad",
|
||||||
"key": "To",
|
"key": "To",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "Ordenar per més noves",
|
"sort_newest": "Ordenar per més noves",
|
||||||
"sort_oldest": "Ordenar per més antigues",
|
"sort_oldest": "Ordenar per més antigues",
|
||||||
"sleep_timer": "Temporitzador d'apagat",
|
"sleep_timer": "Temporitzador d'apagat",
|
||||||
"mins": "{minutes} minuts",
|
"minutes": "{minutes} minuts",
|
||||||
"hours": "{hours} hores",
|
"hours": "{hours} hores",
|
||||||
"hour": "{hours} hora",
|
"hour": "{hours} hora",
|
||||||
"custom_hours": "Hores personalitzades",
|
"custom_hours": "Hores personalitzades",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "Font d'àudio",
|
"audio_source": "Font d'àudio",
|
||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"failed_to_encrypt": "Error al xifrar",
|
"failed_to_encrypt": "Error al xifrar",
|
||||||
"encryption_failed_warning": "Spotube utilitza el xifrado per emmagatzemar les seves dades de forma segura. Però ha fallat. Per tant, tornarà a un emmagatzament no segur\nSi estè utilizant Linux, asseguri's de tenir instal·lats els serveis secrets com gnome-keyring, kde-wallet i keepassxc",
|
"encryption_failed_warning": "Spotube utilitza el xifrado per emmagatzemar les seves dades de forma segura. Però ha fallat. Per tant, tornarà a un emmagatzament no segur\nSi estè utilizant Linux, asseguri's de tenir instal·lats els serveis secrets com gnome-keyring, kde-wallet i KeePassXC",
|
||||||
"piped_api_down": "La API de Piped no està operativa",
|
"piped_api_down": "La API de Piped no està operativa",
|
||||||
"piped_down_error_instructions": "La instància de Piped {pipedInstance} no està operativa en aquest moment\n\nCanvieu la instància o canvieu el 'Tipus d'API' a l'API oficial de YouTube\n\nAssegureu-vos de reiniciar l'aplicació després del canvi",
|
"piped_down_error_instructions": "La instància de Piped {pipedInstance} no està operativa en aquest moment\n\nCanvieu la instància o canvieu el 'Tipus d'API' a l'API oficial de YouTube\n\nAssegureu-vos de reiniciar l'aplicació després del canvi",
|
||||||
"you_are_offline": "Actualment no teniu connexió a internet",
|
"you_are_offline": "Actualment no teniu connexió a internet",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "cançons reproduïdes",
|
"streamed_songs": "cançons reproduïdes",
|
||||||
"count_streams": "{count} reproduccions",
|
"count_streams": "{count} reproduccions",
|
||||||
"owned_by_you": "De la teva propietat",
|
"owned_by_you": "De la teva propietat",
|
||||||
"copied_shareurl_to_clipboard": "S'ha copiat {shareUrl} al porta-retalls",
|
"copied_share_url_to_clipboard": "S'ha copiat {shareUrl} al porta-retalls",
|
||||||
"spotify_hipotetical_calculation": "*Això es calcula basant-se en els\npagaments per reproducció de Spotify de $0.003 a $0.005.\nAquest és un càlcul hipotètic per\ndonar als usuaris una idea de quant\nhaurien pagat als artistes si haguessin escoltat\nla seva cançó a Spotify.",
|
"spotify_hypothetical_calculation": "*Això es calcula basant-se en els\npagaments per reproducció de Spotify de $0.003 a $0.005.\nAquest és un càlcul hipotètic per\ndonar als usuaris una idea de quant\nhaurien pagat als artistes si haguessin escoltat\nla seva cançó a Spotify.",
|
||||||
"count_mins": "{minutes} minuts",
|
"count_minutes": "{minutes} minuts",
|
||||||
"summary_minutes": "minuts",
|
"summary_minutes": "minuts",
|
||||||
"summary_listened_to_music": "has escoltat música",
|
"summary_listened_to_music": "has escoltat música",
|
||||||
"summary_songs": "cançons",
|
"summary_songs": "cançons",
|
||||||
|
@ -91,7 +91,7 @@
|
|||||||
"mini_player": "Mini přehrávač",
|
"mini_player": "Mini přehrávač",
|
||||||
"slide_to_seek": "Táhněte pro posunutí vpřed nebo vzad",
|
"slide_to_seek": "Táhněte pro posunutí vpřed nebo vzad",
|
||||||
"shuffle_playlist": "Zamíchat playlist",
|
"shuffle_playlist": "Zamíchat playlist",
|
||||||
"unshuffle_playlist": "Zrušit zamíchání playlistu",
|
"not_shuffle_playlist": "Zrušit zamíchání playlistu",
|
||||||
"previous_track": "Předchozí skladba",
|
"previous_track": "Předchozí skladba",
|
||||||
"next_track": "Další skladba",
|
"next_track": "Další skladba",
|
||||||
"pause_playback": "Pozastavit přehrávání",
|
"pause_playback": "Pozastavit přehrávání",
|
||||||
@ -176,7 +176,7 @@
|
|||||||
"first_go_to": "Nejprve jděte na",
|
"first_go_to": "Nejprve jděte na",
|
||||||
"login_if_not_logged_in": "a přihlašte se nebo se zaregistrujte, pokud nejste přihlášeni",
|
"login_if_not_logged_in": "a přihlašte se nebo se zaregistrujte, pokud nejste přihlášeni",
|
||||||
"step_2": "Krok 2",
|
"step_2": "Krok 2",
|
||||||
"step_2_steps": "1. Jakmile jste přihlášeni, stiskněte F12 nebo pravé tlačítko myši > Prozkoumat, abyste otevřeli nástroje pro vývojáře prohlížeče.\n2. Poté přejděte na kartu \"Aplikace\" (Chrome, Edge, Brave atd.) nebo kartu \"Úložiště\" (Firefox, Palemoon atd.)\n3. Přejděte do sekce \"Cookies\" a pak do podsekce \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Jakmile jste přihlášeni, stiskněte F12 nebo pravé tlačítko myši > Prozkoumat, abyste otevřeli nástroje pro vývojáře prohlížeče.\n2. Poté přejděte na kartu \"Aplikace\" (Chrome, Edge, Brave atd.) nebo kartu \"Úložiště\" (Firefox, Pale Moon atd.)\n3. Přejděte do sekce \"Cookies\" a pak do podsekce \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Krok 3",
|
"step_3": "Krok 3",
|
||||||
"step_3_steps": "Zkopírujte hodnotu cookie \"sp_dc\"",
|
"step_3_steps": "Zkopírujte hodnotu cookie \"sp_dc\"",
|
||||||
"success_emoji": "Úspěch🥳",
|
"success_emoji": "Úspěch🥳",
|
||||||
@ -199,13 +199,13 @@
|
|||||||
"add_genres": "Přidat žánry",
|
"add_genres": "Přidat žánry",
|
||||||
"country": "Země",
|
"country": "Země",
|
||||||
"number_of_tracks_generate": "Počet skladeb k vygenerování",
|
"number_of_tracks_generate": "Počet skladeb k vygenerování",
|
||||||
"acousticness": "Akustičnost",
|
"not_acoustic": "Akustičnost",
|
||||||
"danceability": "Tanečnost",
|
"dance_ability": "Tanečnost",
|
||||||
"energy": "Energie",
|
"energy": "Energie",
|
||||||
"instrumentalness": "Instrumentálnost",
|
"not_instrumental": "Instrumentálnost",
|
||||||
"liveness": "Živost",
|
"liveness": "Živost",
|
||||||
"loudness": "Hlasitost",
|
"loudness": "Hlasitost",
|
||||||
"speechiness": "Mluvnost",
|
"talkative": "Mluvnost",
|
||||||
"valence": "Valence",
|
"valence": "Valence",
|
||||||
"popularity": "Popularita",
|
"popularity": "Popularita",
|
||||||
"key": "Klíč",
|
"key": "Klíč",
|
||||||
@ -244,7 +244,7 @@
|
|||||||
"sort_newest": "Seřadit od nejnovějších",
|
"sort_newest": "Seřadit od nejnovějších",
|
||||||
"sort_oldest": "Seřadit od nejstarších",
|
"sort_oldest": "Seřadit od nejstarších",
|
||||||
"sleep_timer": "Časovač spánku",
|
"sleep_timer": "Časovač spánku",
|
||||||
"mins": "{minutes} Minut",
|
"minutes": "{minutes} Minut",
|
||||||
"hours": "{hours} Hodin",
|
"hours": "{hours} Hodin",
|
||||||
"hour": "{hours} Hodina",
|
"hour": "{hours} Hodina",
|
||||||
"custom_hours": "Vlastní hodiny",
|
"custom_hours": "Vlastní hodiny",
|
||||||
@ -255,7 +255,7 @@
|
|||||||
"audio_source": "Zdroj zvuku",
|
"audio_source": "Zdroj zvuku",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"failed_to_encrypt": "Šifrování selhalo",
|
"failed_to_encrypt": "Šifrování selhalo",
|
||||||
"encryption_failed_warning": "Spotube používá šifrování k bezpečnému ukládání vašich dat. Ale selhalo. Takže se vrátí k nezabezpečenému úložišti\nPokud používáte linux, ujistěte se, že máte nainstalovanou jakoukoli službu k ukládání bezpečnostních pověření (gnome-keyring, kde-wallet, keepassxc atd.)",
|
"encryption_failed_warning": "Spotube používá šifrování k bezpečnému ukládání vašich dat. Ale selhalo. Takže se vrátí k nezabezpečenému úložišti\nPokud používáte linux, ujistěte se, že máte nainstalovanou jakoukoli službu k ukládání bezpečnostních pověření (gnome-keyring, kde-wallet, KeePassXC atd.)",
|
||||||
"querying_info": "Získávání informací...",
|
"querying_info": "Získávání informací...",
|
||||||
"piped_api_down": "Piped API je mimo provoz",
|
"piped_api_down": "Piped API je mimo provoz",
|
||||||
"piped_down_error_instructions": "Instance Piped {pipedInstance} je momentálně mimo provoz\n\nBuď změňte instanci nebo změňte 'Typ API' na oficiální YouTube API\n\nPo změně se ujistěte, že aplikaci restartujete",
|
"piped_down_error_instructions": "Instance Piped {pipedInstance} je momentálně mimo provoz\n\nBuď změňte instanci nebo změňte 'Typ API' na oficiální YouTube API\n\nPo změně se ujistěte, že aplikaci restartujete",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "Streamované skladby",
|
"streamed_songs": "Streamované skladby",
|
||||||
"count_streams": "{count} streamů",
|
"count_streams": "{count} streamů",
|
||||||
"owned_by_you": "Vlastněno vámi",
|
"owned_by_you": "Vlastněno vámi",
|
||||||
"copied_shareurl_to_clipboard": "Zkopírováno {shareUrl} do schránky",
|
"copied_share_url_to_clipboard": "Zkopírováno {shareUrl} do schránky",
|
||||||
"spotify_hipotetical_calculation": "*Toto je vypočítáno na základě výplaty\nza stream Spotify od $0.003 do $0.005.\nToto je hypotetický výpočet,\nabyste měli představu o tom, kolik\nbyste zaplatili umělcům,\npokud byste poslouchali jejich píseň na Spotify.",
|
"spotify_hypothetical_calculation": "*Toto je vypočítáno na základě výplaty\nza stream Spotify od $0.003 do $0.005.\nToto je hypotetický výpočet,\nabyste měli představu o tom, kolik\nbyste zaplatili umělcům,\npokud byste poslouchali jejich píseň na Spotify.",
|
||||||
"count_mins": "{minutes} minut",
|
"count_minutes": "{minutes} minut",
|
||||||
"summary_minutes": "minuty",
|
"summary_minutes": "minuty",
|
||||||
"summary_listened_to_music": "Poslouchal(a) hudbu",
|
"summary_listened_to_music": "Poslouchal(a) hudbu",
|
||||||
"summary_songs": "písně",
|
"summary_songs": "písně",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "Mini-Player",
|
"mini_player": "Mini-Player",
|
||||||
"slide_to_seek": "Zum Vor- oder Zurückspulen ziehen",
|
"slide_to_seek": "Zum Vor- oder Zurückspulen ziehen",
|
||||||
"shuffle_playlist": "Playlist mischen",
|
"shuffle_playlist": "Playlist mischen",
|
||||||
"unshuffle_playlist": "Playlist nicht mehr mischen",
|
"not_shuffle_playlist": "Playlist nicht mehr mischen",
|
||||||
"previous_track": "Vorheriger Track",
|
"previous_track": "Vorheriger Track",
|
||||||
"next_track": "Nächster Track",
|
"next_track": "Nächster Track",
|
||||||
"pause_playback": "Wiedergabe pausieren",
|
"pause_playback": "Wiedergabe pausieren",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "Gehe zuerst zu",
|
"first_go_to": "Gehe zuerst zu",
|
||||||
"login_if_not_logged_in": "und melde dich an/registriere dich, falls du nicht angemeldet bist",
|
"login_if_not_logged_in": "und melde dich an/registriere dich, falls du nicht angemeldet bist",
|
||||||
"step_2": "Schritt 2",
|
"step_2": "Schritt 2",
|
||||||
"step_2_steps": "1. Wenn du angemeldet bist, drücke F12 oder klicke mit der rechten Maustaste > Inspektion, um die Browser-Entwicklertools zu öffnen.\n2. Gehe dann zum \"Anwendungs\"-Tab (Chrome, Edge, Brave usw.) oder zum \"Storage\"-Tab (Firefox, Palemoon usw.)\n3. Gehe zum Abschnitt \"Cookies\" und dann zum Unterabschnitt \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Wenn du angemeldet bist, drücke F12 oder klicke mit der rechten Maustaste > Inspektion, um die Browser-Entwicklertools zu öffnen.\n2. Gehe dann zum \"Anwendungs\"-Tab (Chrome, Edge, Brave usw.) oder zum \"Storage\"-Tab (Firefox, Pale Moon usw.)\n3. Gehe zum Abschnitt \"Cookies\" und dann zum Unterabschnitt \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Schritt 3",
|
"step_3": "Schritt 3",
|
||||||
"success_emoji": "Erfolg🥳",
|
"success_emoji": "Erfolg🥳",
|
||||||
"success_message": "Jetzt bist du erfolgreich mit deinem Spotify-Konto angemeldet. Gut gemacht, Kumpel!",
|
"success_message": "Jetzt bist du erfolgreich mit deinem Spotify-Konto angemeldet. Gut gemacht, Kumpel!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "Genres hinzufügen",
|
"add_genres": "Genres hinzufügen",
|
||||||
"country": "Land",
|
"country": "Land",
|
||||||
"number_of_tracks_generate": "Anzahl der zu generierenden Titel",
|
"number_of_tracks_generate": "Anzahl der zu generierenden Titel",
|
||||||
"acousticness": "Akustik",
|
"not_acoustic": "Akustik",
|
||||||
"danceability": "Tanzbarkeit",
|
"dance_ability": "Tanzbarkeit",
|
||||||
"energy": "Energie",
|
"energy": "Energie",
|
||||||
"instrumentalness": "Instrumentalität",
|
"not_instrumental": "Instrumentalität",
|
||||||
"liveness": "Lebendigkeit",
|
"liveness": "Lebendigkeit",
|
||||||
"loudness": "Lautstärke",
|
"loudness": "Lautstärke",
|
||||||
"speechiness": "Sprechanteil",
|
"talkative": "Sprechanteil",
|
||||||
"valence": "Stimmung",
|
"valence": "Stimmung",
|
||||||
"popularity": "Beliebtheit",
|
"popularity": "Beliebtheit",
|
||||||
"key": "Tonart",
|
"key": "Tonart",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "Nach neuesten Hinzufügungen sortieren",
|
"sort_newest": "Nach neuesten Hinzufügungen sortieren",
|
||||||
"sort_oldest": "Nach ältesten Hinzufügungen sortieren",
|
"sort_oldest": "Nach ältesten Hinzufügungen sortieren",
|
||||||
"sleep_timer": "Schlaftimer",
|
"sleep_timer": "Schlaftimer",
|
||||||
"mins": "{minutes} Minuten",
|
"minutes": "{minutes} Minuten",
|
||||||
"hours": "{hours} Stunden",
|
"hours": "{hours} Stunden",
|
||||||
"hour": "{hours} Stunde",
|
"hour": "{hours} Stunde",
|
||||||
"custom_hours": "Benutzerdefinierte Stunden",
|
"custom_hours": "Benutzerdefinierte Stunden",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "Audioquelle",
|
"audio_source": "Audioquelle",
|
||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"failed_to_encrypt": "Verschlüsselung fehlgeschlagen",
|
"failed_to_encrypt": "Verschlüsselung fehlgeschlagen",
|
||||||
"encryption_failed_warning": "Spotube verwendet Verschlüsselung, um Ihre Daten sicher zu speichern. Dies ist jedoch fehlgeschlagen. Daher wird es auf unsichere Speicherung zurückgreifen\nWenn Sie Linux verwenden, stellen Sie bitte sicher, dass Sie Secret-Services wie gnome-keyring, kde-wallet und keepassxc installiert haben",
|
"encryption_failed_warning": "Spotube verwendet Verschlüsselung, um Ihre Daten sicher zu speichern. Dies ist jedoch fehlgeschlagen. Daher wird es auf unsichere Speicherung zurückgreifen\nWenn Sie Linux verwenden, stellen Sie bitte sicher, dass Sie Secret-Services wie gnome-keyring, kde-wallet und KeePassXC installiert haben",
|
||||||
"querying_info": "Abfrageinformationen...",
|
"querying_info": "Abfrageinformationen...",
|
||||||
"piped_api_down": "Die Piped API ist ausgefallen",
|
"piped_api_down": "Die Piped API ist ausgefallen",
|
||||||
"piped_down_error_instructions": "Die Piped-Instanz {pipedInstance} ist derzeit nicht verfügbar\n\nEntweder ändern Sie die Instanz oder wechseln Sie den 'API-Typ' zur offiziellen YouTube API\n\nStellen Sie sicher, dass Sie die App nach der Änderung neu starten",
|
"piped_down_error_instructions": "Die Piped-Instanz {pipedInstance} ist derzeit nicht verfügbar\n\nEntweder ändern Sie die Instanz oder wechseln Sie den 'API-Typ' zur offiziellen YouTube API\n\nStellen Sie sicher, dass Sie die App nach der Änderung neu starten",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "Gestreamte Lieder",
|
"streamed_songs": "Gestreamte Lieder",
|
||||||
"count_streams": "{count} Streams",
|
"count_streams": "{count} Streams",
|
||||||
"owned_by_you": "In Ihrem Besitz",
|
"owned_by_you": "In Ihrem Besitz",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} in die Zwischenablage kopiert",
|
"copied_share_url_to_clipboard": "{shareUrl} in die Zwischenablage kopiert",
|
||||||
"spotify_hipotetical_calculation": "*Dies ist basierend auf Spotifys\npro Stream Auszahlung von $0,003 bis $0,005\nberechnet. Dies ist eine hypothetische Berechnung,\num dem Benutzer Einblick zu geben,\nwieviel sie den Künstlern gezahlt hätten,\nwenn sie ihren Song auf Spotify gehört hätten.",
|
"spotify_hypothetical_calculation": "*Dies ist basierend auf Spotifys\npro Stream Auszahlung von $0,003 bis $0,005\nberechnet. Dies ist eine hypothetische Berechnung,\num dem Benutzer Einblick zu geben,\nwieviel sie den Künstlern gezahlt hätten,\nwenn sie ihren Song auf Spotify gehört hätten.",
|
||||||
"count_mins": "{minutes} Minuten",
|
"count_minutes": "{minutes} Minuten",
|
||||||
"summary_minutes": "Minuten",
|
"summary_minutes": "Minuten",
|
||||||
"summary_listened_to_music": "Hat Musik gehört",
|
"summary_listened_to_music": "Hat Musik gehört",
|
||||||
"summary_songs": "Lieder",
|
"summary_songs": "Lieder",
|
||||||
|
@ -1,428 +1,428 @@
|
|||||||
{
|
{
|
||||||
"guest": "Guest",
|
"guest": "Guest",
|
||||||
"browse": "Browse",
|
"browse": "Browse",
|
||||||
"search": "Search",
|
"search": "Search",
|
||||||
"library": "Library",
|
"library": "Library",
|
||||||
"lyrics": "Lyrics",
|
"lyrics": "Lyrics",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"genre_categories_filter": "Filter categories or genres...",
|
"genre_categories_filter": "Filter categories or genres...",
|
||||||
"genre": "Genre",
|
"genre": "Genre",
|
||||||
"personalized": "Personalized",
|
"personalized": "Personalized",
|
||||||
"featured": "Featured",
|
"featured": "Featured",
|
||||||
"new_releases": "New Releases",
|
"new_releases": "New Releases",
|
||||||
"songs": "Songs",
|
"songs": "Songs",
|
||||||
"playing_track": "Playing {track}",
|
"playing_track": "Playing {track}",
|
||||||
"queue_clear_alert": "This will clear the current queue. {track_length} tracks will be removed\nDo you want to continue?",
|
"queue_clear_alert": "This will clear the current queue. {track_length} tracks will be removed\nDo you want to continue?",
|
||||||
"load_more": "Load more",
|
"load_more": "Load more",
|
||||||
"playlists": "Playlists",
|
"playlists": "Playlists",
|
||||||
"artists": "Artists",
|
"artists": "Artists",
|
||||||
"albums": "Albums",
|
"albums": "Albums",
|
||||||
"tracks": "Tracks",
|
"tracks": "Tracks",
|
||||||
"downloads": "Downloads",
|
"downloads": "Downloads",
|
||||||
"filter_playlists": "Filter your playlists...",
|
"filter_playlists": "Filter your playlists...",
|
||||||
"liked_tracks": "Liked Tracks",
|
"liked_tracks": "Liked Tracks",
|
||||||
"liked_tracks_description": "All your liked tracks",
|
"liked_tracks_description": "All your liked tracks",
|
||||||
"playlist": "Playlist",
|
"playlist": "Playlist",
|
||||||
"create_a_playlist": "Create a playlist",
|
"create_a_playlist": "Create a playlist",
|
||||||
"update_playlist": "Update playlist",
|
"update_playlist": "Update playlist",
|
||||||
"create": "Create",
|
"create": "Create",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"update": "Update",
|
"update": "Update",
|
||||||
"playlist_name": "Playlist Name",
|
"playlist_name": "Playlist Name",
|
||||||
"name_of_playlist": "Name of the playlist",
|
"name_of_playlist": "Name of the playlist",
|
||||||
"description": "Description",
|
"description": "Description",
|
||||||
"public": "Public",
|
"public": "Public",
|
||||||
"collaborative": "Collaborative",
|
"collaborative": "Collaborative",
|
||||||
"search_local_tracks": "Search local tracks...",
|
"search_local_tracks": "Search local tracks...",
|
||||||
"play": "Play",
|
"play": "Play",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"none": "None",
|
"none": "None",
|
||||||
"sort_a_z": "Sort by A-Z",
|
"sort_a_z": "Sort by A-Z",
|
||||||
"sort_z_a": "Sort by Z-A",
|
"sort_z_a": "Sort by Z-A",
|
||||||
"sort_artist": "Sort by Artist",
|
"sort_artist": "Sort by Artist",
|
||||||
"sort_album": "Sort by Album",
|
"sort_album": "Sort by Album",
|
||||||
"sort_duration": "Sort by Duration",
|
"sort_duration": "Sort by Duration",
|
||||||
"sort_tracks": "Sort Tracks",
|
"sort_tracks": "Sort Tracks",
|
||||||
"currently_downloading": "Currently Downloading ({tracks_length})",
|
"currently_downloading": "Currently Downloading ({tracks_length})",
|
||||||
"cancel_all": "Cancel All",
|
"cancel_all": "Cancel All",
|
||||||
"filter_artist": "Filter artists...",
|
"filter_artist": "Filter artists...",
|
||||||
"followers": "{followers} Followers",
|
"followers": "{followers} Followers",
|
||||||
"add_artist_to_blacklist": "Add artist to blacklist",
|
"add_artist_to_blacklist": "Add artist to blacklist",
|
||||||
"top_tracks": "Top Tracks",
|
"top_tracks": "Top Tracks",
|
||||||
"fans_also_like": "Fans also like",
|
"fans_also_like": "Fans also like",
|
||||||
"loading": "Loading...",
|
"loading": "Loading...",
|
||||||
"artist": "Artist",
|
"artist": "Artist",
|
||||||
"blacklisted": "Blacklisted",
|
"blacklisted": "Blacklisted",
|
||||||
"following": "Following",
|
"following": "Following",
|
||||||
"follow": "Follow",
|
"follow": "Follow",
|
||||||
"artist_url_copied": "Artist URL copied to clipboard",
|
"artist_url_copied": "Artist URL copied to clipboard",
|
||||||
"added_to_queue": "Added {tracks} tracks to queue",
|
"added_to_queue": "Added {tracks} tracks to queue",
|
||||||
"filter_albums": "Filter albums...",
|
"filter_albums": "Filter albums...",
|
||||||
"synced": "Synced",
|
"synced": "Synced",
|
||||||
"plain": "Plain",
|
"plain": "Plain",
|
||||||
"shuffle": "Shuffle",
|
"shuffle": "Shuffle",
|
||||||
"search_tracks": "Search tracks...",
|
"search_tracks": "Search tracks...",
|
||||||
"released": "Released",
|
"released": "Released",
|
||||||
"error": "Error {error}",
|
"error": "Error {error}",
|
||||||
"title": "Title",
|
"title": "Title",
|
||||||
"time": "Time",
|
"time": "Time",
|
||||||
"more_actions": "More actions",
|
"more_actions": "More actions",
|
||||||
"download_count": "Download ({count})",
|
"download_count": "Download ({count})",
|
||||||
"add_count_to_playlist": "Add ({count}) to Playlist",
|
"add_count_to_playlist": "Add ({count}) to Playlist",
|
||||||
"add_count_to_queue": "Add ({count}) to Queue",
|
"add_count_to_queue": "Add ({count}) to Queue",
|
||||||
"play_count_next": "Play ({count}) next",
|
"play_count_next": "Play ({count}) next",
|
||||||
"album": "Album",
|
"album": "Album",
|
||||||
"copied_to_clipboard": "Copied {data} to clipboard",
|
"copied_to_clipboard": "Copied {data} to clipboard",
|
||||||
"add_to_following_playlists": "Add {track} to following Playlists",
|
"add_to_following_playlists": "Add {track} to following Playlists",
|
||||||
"add": "Add",
|
"add": "Add",
|
||||||
"added_track_to_queue": "Added {track} to queue",
|
"added_track_to_queue": "Added {track} to queue",
|
||||||
"add_to_queue": "Add to queue",
|
"add_to_queue": "Add to queue",
|
||||||
"track_will_play_next": "{track} will play next",
|
"track_will_play_next": "{track} will play next",
|
||||||
"play_next": "Play next",
|
"play_next": "Play next",
|
||||||
"removed_track_from_queue": "Removed {track} from queue",
|
"removed_track_from_queue": "Removed {track} from queue",
|
||||||
"remove_from_queue": "Remove from queue",
|
"remove_from_queue": "Remove from queue",
|
||||||
"remove_from_favorites": "Remove from favorites",
|
"remove_from_favorites": "Remove from favorites",
|
||||||
"save_as_favorite": "Save as favorite",
|
"save_as_favorite": "Save as favorite",
|
||||||
"add_to_playlist": "Add to playlist",
|
"add_to_playlist": "Add to playlist",
|
||||||
"remove_from_playlist": "Remove from playlist",
|
"remove_from_playlist": "Remove from playlist",
|
||||||
"add_to_blacklist": "Add to blacklist",
|
"add_to_blacklist": "Add to blacklist",
|
||||||
"remove_from_blacklist": "Remove from blacklist",
|
"remove_from_blacklist": "Remove from blacklist",
|
||||||
"share": "Share",
|
"share": "Share",
|
||||||
"mini_player": "Mini Player",
|
"mini_player": "Mini Player",
|
||||||
"slide_to_seek": "Slide to seek forward or backward",
|
"slide_to_seek": "Slide to seek forward or backward",
|
||||||
"shuffle_playlist": "Shuffle playlist",
|
"shuffle_playlist": "Shuffle playlist",
|
||||||
"unshuffle_playlist": "Unshuffle playlist",
|
"not_shuffle_playlist": "Unshuffle playlist",
|
||||||
"previous_track": "Previous track",
|
"previous_track": "Previous track",
|
||||||
"next_track": "Next track",
|
"next_track": "Next track",
|
||||||
"pause_playback": "Pause Playback",
|
"pause_playback": "Pause Playback",
|
||||||
"resume_playback": "Resume Playback",
|
"resume_playback": "Resume Playback",
|
||||||
"loop_track": "Loop track",
|
"loop_track": "Loop track",
|
||||||
"no_loop": "No loop",
|
"no_loop": "No loop",
|
||||||
"repeat_playlist": "Repeat playlist",
|
"repeat_playlist": "Repeat playlist",
|
||||||
"queue": "Queue",
|
"queue": "Queue",
|
||||||
"alternative_track_sources": "Alternative track sources",
|
"alternative_track_sources": "Alternative track sources",
|
||||||
"download_track": "Download track",
|
"download_track": "Download track",
|
||||||
"tracks_in_queue": "{tracks} tracks in queue",
|
"tracks_in_queue": "{tracks} tracks in queue",
|
||||||
"clear_all": "Clear all",
|
"clear_all": "Clear all",
|
||||||
"show_hide_ui_on_hover": "Show/Hide UI on hover",
|
"show_hide_ui_on_hover": "Show/Hide UI on hover",
|
||||||
"always_on_top": "Always on top",
|
"always_on_top": "Always on top",
|
||||||
"exit_mini_player": "Exit Mini player",
|
"exit_mini_player": "Exit Mini player",
|
||||||
"download_location": "Download location",
|
"download_location": "Download location",
|
||||||
"local_library": "Local library",
|
"local_library": "Local library",
|
||||||
"add_library_location": "Add to library",
|
"add_library_location": "Add to library",
|
||||||
"remove_library_location": "Remove from library",
|
"remove_library_location": "Remove from library",
|
||||||
"account": "Account",
|
"account": "Account",
|
||||||
"login_with_spotify": "Login with your Spotify account",
|
"login_with_spotify": "Login with your Spotify account",
|
||||||
"connect_with_spotify": "Connect with Spotify",
|
"connect_with_spotify": "Connect with Spotify",
|
||||||
"logout": "Logout",
|
"logout": "Logout",
|
||||||
"logout_of_this_account": "Logout of this account",
|
"logout_of_this_account": "Logout of this account",
|
||||||
"language_region": "Language & Region",
|
"language_region": "Language & Region",
|
||||||
"language": "Language",
|
"language": "Language",
|
||||||
"system_default": "System Default",
|
"system_default": "System Default",
|
||||||
"market_place_region": "Marketplace Region",
|
"market_place_region": "Marketplace Region",
|
||||||
"recommendation_country": "Recommendation Country",
|
"recommendation_country": "Recommendation Country",
|
||||||
"appearance": "Appearance",
|
"appearance": "Appearance",
|
||||||
"layout_mode": "Layout Mode",
|
"layout_mode": "Layout Mode",
|
||||||
"override_layout_settings": "Override responsive layout mode settings",
|
"override_layout_settings": "Override responsive layout mode settings",
|
||||||
"adaptive": "Adaptive",
|
"adaptive": "Adaptive",
|
||||||
"compact": "Compact",
|
"compact": "Compact",
|
||||||
"extended": "Extended",
|
"extended": "Extended",
|
||||||
"theme": "Theme",
|
"theme": "Theme",
|
||||||
"dark": "Dark",
|
"dark": "Dark",
|
||||||
"light": "Light",
|
"light": "Light",
|
||||||
"system": "System",
|
"system": "System",
|
||||||
"accent_color": "Accent Color",
|
"accent_color": "Accent Color",
|
||||||
"sync_album_color": "Sync album color",
|
"sync_album_color": "Sync album color",
|
||||||
"sync_album_color_description": "Uses the dominant color of the album art as the accent color",
|
"sync_album_color_description": "Uses the dominant color of the album art as the accent color",
|
||||||
"playback": "Playback",
|
"playback": "Playback",
|
||||||
"audio_quality": "Audio Quality",
|
"audio_quality": "Audio Quality",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"low": "Low",
|
"low": "Low",
|
||||||
"pre_download_play": "Pre-download and play",
|
"pre_download_play": "Pre-download and play",
|
||||||
"pre_download_play_description": "Instead of streaming audio, download bytes and play instead (Recommended for higher bandwidth users)",
|
"pre_download_play_description": "Instead of streaming audio, download bytes and play instead (Recommended for higher bandwidth users)",
|
||||||
"skip_non_music": "Skip non-music segments (SponsorBlock)",
|
"skip_non_music": "Skip non-music segments (SponsorBlock)",
|
||||||
"blacklist_description": "Blacklisted tracks and artists",
|
"blacklist_description": "Blacklisted tracks and artists",
|
||||||
"wait_for_download_to_finish": "Please wait for the current download to finish",
|
"wait_for_download_to_finish": "Please wait for the current download to finish",
|
||||||
"desktop": "Desktop",
|
"desktop": "Desktop",
|
||||||
"close_behavior": "Close Behavior",
|
"close_behavior": "Close Behavior",
|
||||||
"close": "Close",
|
"close": "Close",
|
||||||
"minimize_to_tray": "Minimize to tray",
|
"minimize_to_tray": "Minimize to tray",
|
||||||
"show_tray_icon": "Show System tray icon",
|
"show_tray_icon": "Show System tray icon",
|
||||||
"about": "About",
|
"about": "About",
|
||||||
"u_love_spotube": "We know you love Spotube",
|
"u_love_spotube": "We know you love Spotube",
|
||||||
"check_for_updates": "Check for updates",
|
"check_for_updates": "Check for updates",
|
||||||
"about_spotube": "About Spotube",
|
"about_spotube": "About Spotube",
|
||||||
"blacklist": "Blacklist",
|
"blacklist": "Blacklist",
|
||||||
"please_sponsor": "Please Sponsor/Donate",
|
"please_sponsor": "Please Sponsor/Donate",
|
||||||
"spotube_description": "Spotube, a lightweight, cross-platform, free-for-all spotify client",
|
"spotube_description": "Spotube, a lightweight, cross-platform, free-for-all spotify client",
|
||||||
"version": "Version",
|
"version": "Version",
|
||||||
"build_number": "Build Number",
|
"build_number": "Build Number",
|
||||||
"founder": "Founder",
|
"founder": "Founder",
|
||||||
"repository": "Repository",
|
"repository": "Repository",
|
||||||
"bug_issues": "Bug+Issues",
|
"bug_issues": "Bug+Issues",
|
||||||
"made_with": "Made with ❤️ in Bangladesh🇧🇩",
|
"made_with": "Made with ❤️ in Bangladesh🇧🇩",
|
||||||
"kingkor_roy_tirtho": "Kingkor Roy Tirtho",
|
"kingkor_roy_tirtho": "Kingkor Roy Tirtho",
|
||||||
"copyright": "© 2021-{current_year} Kingkor Roy Tirtho",
|
"copyright": "© 2021-{current_year} Kingkor Roy Tirtho",
|
||||||
"license": "License",
|
"license": "License",
|
||||||
"add_spotify_credentials": "Add your spotify credentials to get started",
|
"add_spotify_credentials": "Add your spotify credentials to get started",
|
||||||
"credentials_will_not_be_shared_disclaimer": "Don't worry, any of your credentials won't be collected or shared with anyone",
|
"credentials_will_not_be_shared_disclaimer": "Don't worry, any of your credentials won't be collected or shared with anyone",
|
||||||
"know_how_to_login": "Don't know how to do this?",
|
"know_how_to_login": "Don't know how to do this?",
|
||||||
"follow_step_by_step_guide": "Follow along the Step by Step guide",
|
"follow_step_by_step_guide": "Follow along the Step by Step guide",
|
||||||
"spotify_cookie": "Spotify {name} Cookie",
|
"spotify_cookie": "Spotify {name} Cookie",
|
||||||
"cookie_name_cookie": "{name} Cookie",
|
"cookie_name_cookie": "{name} Cookie",
|
||||||
"fill_in_all_fields": "Please fill in all the fields",
|
"fill_in_all_fields": "Please fill in all the fields",
|
||||||
"submit": "Submit",
|
"submit": "Submit",
|
||||||
"exit": "Exit",
|
"exit": "Exit",
|
||||||
"previous": "Previous",
|
"previous": "Previous",
|
||||||
"next": "Next",
|
"next": "Next",
|
||||||
"done": "Done",
|
"done": "Done",
|
||||||
"step_1": "Step 1",
|
"step_1": "Step 1",
|
||||||
"first_go_to": "First, Go to",
|
"first_go_to": "First, Go to",
|
||||||
"login_if_not_logged_in": "and Login/Signup if you are not logged in",
|
"login_if_not_logged_in": "and Login/Signup if you are not logged in",
|
||||||
"step_2": "Step 2",
|
"step_2": "Step 2",
|
||||||
"step_2_steps": "1. Once you're logged in, press F12 or Mouse Right Click > Inspect to Open the Browser devtools.\n2. Then go the \"Application\" Tab (Chrome, Edge, Brave etc..) or \"Storage\" Tab (Firefox, Palemoon etc..)\n3. Go to the \"Cookies\" section then the \"https://accounts.spotify.com\" subsection",
|
"step_2_steps": "1. Once you're logged in, press F12 or Mouse Right Click > Inspect to Open the Browser devtools.\n2. Then go the \"Application\" Tab (Chrome, Edge, Brave etc..) or \"Storage\" Tab (Firefox, Pale Moon etc..)\n3. Go to the \"Cookies\" section then the \"https://accounts.spotify.com\" subsection",
|
||||||
"step_3": "Step 3",
|
"step_3": "Step 3",
|
||||||
"step_3_steps": "Copy the value of \"sp_dc\" Cookie",
|
"step_3_steps": "Copy the value of \"sp_dc\" Cookie",
|
||||||
"success_emoji": "Success🥳",
|
"success_emoji": "Success🥳",
|
||||||
"success_message": "Now you've successfully Logged in with your Spotify account. Good Job, mate!",
|
"success_message": "Now you've successfully Logged in with your Spotify account. Good Job, mate!",
|
||||||
"step_4": "Step 4",
|
"step_4": "Step 4",
|
||||||
"step_4_steps": "Paste the copied \"sp_dc\" value",
|
"step_4_steps": "Paste the copied \"sp_dc\" value",
|
||||||
"something_went_wrong": "Something went wrong",
|
"something_went_wrong": "Something went wrong",
|
||||||
"piped_instance": "Piped Server Instance",
|
"piped_instance": "Piped Server Instance",
|
||||||
"piped_description": "The Piped server instance to use for track matching",
|
"piped_description": "The Piped server instance to use for track matching",
|
||||||
"piped_warning": "Some of them might not work well. So use at your own risk",
|
"piped_warning": "Some of them might not work well. So use at your own risk",
|
||||||
"invidious_instance": "Invidious Server Instance",
|
"invidious_instance": "Invidious Server Instance",
|
||||||
"invidious_description": "The Invidious server instance to use for track matching",
|
"invidious_description": "The Invidious server instance to use for track matching",
|
||||||
"invidious_warning": "Some of them might not work well. So use at your own risk",
|
"invidious_warning": "Some of them might not work well. So use at your own risk",
|
||||||
"generate": "Generate",
|
"generate": "Generate",
|
||||||
"track_exists": "Track {track} already exists",
|
"track_exists": "Track {track} already exists",
|
||||||
"replace_downloaded_tracks": "Replace all downloaded tracks",
|
"replace_downloaded_tracks": "Replace all downloaded tracks",
|
||||||
"skip_download_tracks": "Skip downloading all downloaded tracks",
|
"skip_download_tracks": "Skip downloading all downloaded tracks",
|
||||||
"do_you_want_to_replace": "Do you want to replace the existing track??",
|
"do_you_want_to_replace": "Do you want to replace the existing track??",
|
||||||
"replace": "Replace",
|
"replace": "Replace",
|
||||||
"skip": "Skip",
|
"skip": "Skip",
|
||||||
"select_up_to_count_type": "Select up to {count} {type}",
|
"select_up_to_count_type": "Select up to {count} {type}",
|
||||||
"select_genres": "Select Genres",
|
"select_genres": "Select Genres",
|
||||||
"add_genres": "Add Genres",
|
"add_genres": "Add Genres",
|
||||||
"country": "Country",
|
"country": "Country",
|
||||||
"number_of_tracks_generate": "Number of tracks to generate",
|
"number_of_tracks_generate": "Number of tracks to generate",
|
||||||
"acousticness": "Acousticness",
|
"not_acoustic": "not_acoustic",
|
||||||
"danceability": "Danceability",
|
"dance_ability": "dance_ability",
|
||||||
"energy": "Energy",
|
"energy": "Energy",
|
||||||
"instrumentalness": "Instrumentalness",
|
"not_instrumental": "not_instrumental",
|
||||||
"liveness": "Liveness",
|
"liveness": "Liveness",
|
||||||
"loudness": "Loudness",
|
"loudness": "Loudness",
|
||||||
"speechiness": "Speechiness",
|
"talkative": "talkative",
|
||||||
"valence": "Valence",
|
"valence": "Valence",
|
||||||
"popularity": "Popularity",
|
"popularity": "Popularity",
|
||||||
"key": "Key",
|
"key": "Key",
|
||||||
"duration": "Duration (s)",
|
"duration": "Duration (s)",
|
||||||
"tempo": "Tempo (BPM)",
|
"tempo": "Tempo (BPM)",
|
||||||
"mode": "Mode",
|
"mode": "Mode",
|
||||||
"time_signature": "Time Signature",
|
"time_signature": "Time Signature",
|
||||||
"short": "Short",
|
"short": "Short",
|
||||||
"medium": "Medium",
|
"medium": "Medium",
|
||||||
"long": "Long",
|
"long": "Long",
|
||||||
"min": "Min",
|
"min": "Min",
|
||||||
"max": "Max",
|
"max": "Max",
|
||||||
"target": "Target",
|
"target": "Target",
|
||||||
"moderate": "Moderate",
|
"moderate": "Moderate",
|
||||||
"deselect_all": "Deselect All",
|
"deselect_all": "Deselect All",
|
||||||
"select_all": "Select All",
|
"select_all": "Select All",
|
||||||
"are_you_sure": "Are you sure?",
|
"are_you_sure": "Are you sure?",
|
||||||
"generating_playlist": "Generating your custom playlist...",
|
"generating_playlist": "Generating your custom playlist...",
|
||||||
"selected_count_tracks": "Selected {count} tracks",
|
"selected_count_tracks": "Selected {count} tracks",
|
||||||
"download_warning": "If you download all Tracks at bulk you're clearly pirating Music & causing damage to the creative society of Music. I hope you are aware of this. Always, try respecting & supporting Artist's hard work",
|
"download_warning": "If you download all Tracks at bulk you're clearly pirating Music & causing damage to the creative society of Music. I hope you are aware of this. Always, try respecting & supporting Artist's hard work",
|
||||||
"download_ip_ban_warning": "BTW, your IP can get blocked on YouTube due excessive download requests than usual. IP block means you can't use YouTube (even if you're logged in) for at least 2-3 months from that IP device. And Spotube doesn't hold any responsibility if this ever happens",
|
"download_ip_ban_warning": "BTW, your IP can get blocked on YouTube due excessive download requests than usual. IP block means you can't use YouTube (even if you're logged in) for at least 2-3 months from that IP device. And Spotube doesn't hold any responsibility if this ever happens",
|
||||||
"by_clicking_accept_terms": "By clicking 'accept' you agree to following terms:",
|
"by_clicking_accept_terms": "By clicking 'accept' you agree to following terms:",
|
||||||
"download_agreement_1": "I know I'm pirating Music. I'm bad",
|
"download_agreement_1": "I know I'm pirating Music. I'm bad",
|
||||||
"download_agreement_2": "I'll support the Artist wherever I can and I'm only doing this because I don't have money to buy their art",
|
"download_agreement_2": "I'll support the Artist wherever I can and I'm only doing this because I don't have money to buy their art",
|
||||||
"download_agreement_3": "I'm completely aware that my IP can get blocked on YouTube & I don't hold Spotube or his owners/contributors responsible for any accidents caused by my current action",
|
"download_agreement_3": "I'm completely aware that my IP can get blocked on YouTube & I don't hold Spotube or his owners/contributors responsible for any accidents caused by my current action",
|
||||||
"decline": "Decline",
|
"decline": "Decline",
|
||||||
"accept": "Accept",
|
"accept": "Accept",
|
||||||
"details": "Details",
|
"details": "Details",
|
||||||
"youtube": "YouTube",
|
"youtube": "YouTube",
|
||||||
"channel": "Channel",
|
"channel": "Channel",
|
||||||
"likes": "Likes",
|
"likes": "Likes",
|
||||||
"dislikes": "Dislikes",
|
"dislikes": "Dislikes",
|
||||||
"views": "Views",
|
"views": "Views",
|
||||||
"streamUrl": "Stream URL",
|
"streamUrl": "Stream URL",
|
||||||
"stop": "Stop",
|
"stop": "Stop",
|
||||||
"sort_newest": "Sort by newest added",
|
"sort_newest": "Sort by newest added",
|
||||||
"sort_oldest": "Sort by oldest added",
|
"sort_oldest": "Sort by oldest added",
|
||||||
"sleep_timer": "Sleep Timer",
|
"sleep_timer": "Sleep Timer",
|
||||||
"mins": "{minutes} Minutes",
|
"minutes": "{minutes} Minutes",
|
||||||
"hours": "{hours} Hours",
|
"hours": "{hours} Hours",
|
||||||
"hour": "{hours} Hour",
|
"hour": "{hours} Hour",
|
||||||
"custom_hours": "Custom Hours",
|
"custom_hours": "Custom Hours",
|
||||||
"logs": "Logs",
|
"logs": "Logs",
|
||||||
"developers": "Developers",
|
"developers": "Developers",
|
||||||
"not_logged_in": "You're not logged in",
|
"not_logged_in": "You're not logged in",
|
||||||
"search_mode": "Search Mode",
|
"search_mode": "Search Mode",
|
||||||
"audio_source": "Audio Source",
|
"audio_source": "Audio Source",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"failed_to_encrypt": "Failed to encrypt",
|
"failed_to_encrypt": "Failed to encrypt",
|
||||||
"encryption_failed_warning": "Spotube uses encryption to securely store your data. But failed to do so. So it'll fallback to insecure storage\nIf you're using linux, please make sure you've any secret-service (gnome-keyring, kde-wallet, keepassxc etc) installed",
|
"encryption_failed_warning": "Spotube uses encryption to securely store your data. But failed to do so. So it'll fallback to insecure storage\nIf you're using linux, please make sure you've any secret-service (gnome-keyring, kde-wallet, KeePassXC etc) installed",
|
||||||
"querying_info": "Querying info...",
|
"querying_info": "Querying info...",
|
||||||
"piped_api_down": "Piped API is down",
|
"piped_api_down": "Piped API is down",
|
||||||
"piped_down_error_instructions": "The Piped instance {pipedInstance} is currently down\n\nEither change the instance or change the 'API type' to official YouTube API\n\nMake sure to restart the app after change",
|
"piped_down_error_instructions": "The Piped instance {pipedInstance} is currently down\n\nEither change the instance or change the 'API type' to official YouTube API\n\nMake sure to restart the app after change",
|
||||||
"you_are_offline": "You are currently offline",
|
"you_are_offline": "You are currently offline",
|
||||||
"connection_restored": "Your internet connection was restored",
|
"connection_restored": "Your internet connection was restored",
|
||||||
"use_system_title_bar": "Use system title bar",
|
"use_system_title_bar": "Use system title bar",
|
||||||
"crunching_results": "Crunching results...",
|
"crunching_results": "Crunching results...",
|
||||||
"search_to_get_results": "Search to get results",
|
"search_to_get_results": "Search to get results",
|
||||||
"use_amoled_mode": "Pitch black dark theme",
|
"use_amoled_mode": "Pitch black dark theme",
|
||||||
"pitch_dark_theme": "AMOLED Mode",
|
"pitch_dark_theme": "AMOLED Mode",
|
||||||
"normalize_audio": "Normalize audio",
|
"normalize_audio": "Normalize audio",
|
||||||
"change_cover": "Change cover",
|
"change_cover": "Change cover",
|
||||||
"add_cover": "Add cover",
|
"add_cover": "Add cover",
|
||||||
"restore_defaults": "Restore defaults",
|
"restore_defaults": "Restore defaults",
|
||||||
"download_music_codec": "Download music codec",
|
"download_music_codec": "Download music codec",
|
||||||
"streaming_music_codec": "Streaming music codec",
|
"streaming_music_codec": "Streaming music codec",
|
||||||
"login_with_lastfm": "Login with Last.fm",
|
"login_with_lastfm": "Login with Last.fm",
|
||||||
"connect": "Connect",
|
"connect": "Connect",
|
||||||
"disconnect_lastfm": "Disconnect Last.fm",
|
"disconnect_lastfm": "Disconnect Last.fm",
|
||||||
"disconnect": "Disconnect",
|
"disconnect": "Disconnect",
|
||||||
"username": "Username",
|
"username": "Username",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
"login": "Login",
|
"login": "Login",
|
||||||
"login_with_your_lastfm": "Login with your Last.fm account",
|
"login_with_your_lastfm": "Login with your Last.fm account",
|
||||||
"scrobble_to_lastfm": "Scrobble to Last.fm",
|
"scrobble_to_lastfm": "Scrobble to Last.fm",
|
||||||
"go_to_album": "Go to Album",
|
"go_to_album": "Go to Album",
|
||||||
"discord_rich_presence": "Discord Rich Presence",
|
"discord_rich_presence": "Discord Rich Presence",
|
||||||
"browse_all": "Browse All",
|
"browse_all": "Browse All",
|
||||||
"genres": "Genres",
|
"genres": "Genres",
|
||||||
"explore_genres": "Explore Genres",
|
"explore_genres": "Explore Genres",
|
||||||
"friends": "Friends",
|
"friends": "Friends",
|
||||||
"no_lyrics_available": "Sorry, unable find lyrics for this track",
|
"no_lyrics_available": "Sorry, unable find lyrics for this track",
|
||||||
"start_a_radio": "Start a Radio",
|
"start_a_radio": "Start a Radio",
|
||||||
"how_to_start_radio": "How do you want to start the radio?",
|
"how_to_start_radio": "How do you want to start the radio?",
|
||||||
"replace_queue_question": "Do you want to replace the current queue or append to it?",
|
"replace_queue_question": "Do you want to replace the current queue or append to it?",
|
||||||
"endless_playback": "Endless Playback",
|
"endless_playback": "Endless Playback",
|
||||||
"delete_playlist": "Delete Playlist",
|
"delete_playlist": "Delete Playlist",
|
||||||
"delete_playlist_confirmation": "Are you sure you want to delete this playlist?",
|
"delete_playlist_confirmation": "Are you sure you want to delete this playlist?",
|
||||||
"local_tracks": "Local Tracks",
|
"local_tracks": "Local Tracks",
|
||||||
"local_tab": "Local",
|
"local_tab": "Local",
|
||||||
"song_link": "Song Link",
|
"song_link": "Song Link",
|
||||||
"skip_this_nonsense": "Skip this nonsense",
|
"skip_this_nonsense": "Skip this nonsense",
|
||||||
"freedom_of_music": "“Freedom of Music”",
|
"freedom_of_music": "“Freedom of Music”",
|
||||||
"freedom_of_music_palm": "“Freedom of Music in the palm of your hand”",
|
"freedom_of_music_palm": "“Freedom of Music in the palm of your hand”",
|
||||||
"get_started": "Let's get started",
|
"get_started": "Let's get started",
|
||||||
"youtube_source_description": "Recommended and works best.",
|
"youtube_source_description": "Recommended and works best.",
|
||||||
"piped_source_description": "Feeling free? Same as YouTube but a lot free.",
|
"piped_source_description": "Feeling free? Same as YouTube but a lot free.",
|
||||||
"jiosaavn_source_description": "Best for South Asian region.",
|
"jiosaavn_source_description": "Best for South Asian region.",
|
||||||
"invidious_source_description": "Similar to Piped but with higher availability.",
|
"invidious_source_description": "Similar to Piped but with higher availability.",
|
||||||
"highest_quality": "Highest Quality: {quality}",
|
"highest_quality": "Highest Quality: {quality}",
|
||||||
"select_audio_source": "Select Audio Source",
|
"select_audio_source": "Select Audio Source",
|
||||||
"endless_playback_description": "Automatically append new songs\nto the end of the queue",
|
"endless_playback_description": "Automatically append new songs\nto the end of the queue",
|
||||||
"choose_your_region": "Choose your region",
|
"choose_your_region": "Choose your region",
|
||||||
"choose_your_region_description": "This will help Spotube show you the right content\nfor your location.",
|
"choose_your_region_description": "This will help Spotube show you the right content\nfor your location.",
|
||||||
"choose_your_language": "Choose your language",
|
"choose_your_language": "Choose your language",
|
||||||
"help_project_grow": "Help this project grow",
|
"help_project_grow": "Help this project grow",
|
||||||
"help_project_grow_description": "Spotube is an open-source project. You can help this project grow by contributing to the project, reporting bugs, or suggesting new features.",
|
"help_project_grow_description": "Spotube is an open-source project. You can help this project grow by contributing to the project, reporting bugs, or suggesting new features.",
|
||||||
"contribute_on_github": "Contribute on GitHub",
|
"contribute_on_github": "Contribute on GitHub",
|
||||||
"donate_on_open_collective": "Donate on Open Collective",
|
"donate_on_open_collective": "Donate on Open Collective",
|
||||||
"browse_anonymously": "Browse Anonymously",
|
"browse_anonymously": "Browse Anonymously",
|
||||||
"enable_connect": "Enable Connect",
|
"enable_connect": "Enable Connect",
|
||||||
"enable_connect_description": "Control Spotube from other devices",
|
"enable_connect_description": "Control Spotube from other devices",
|
||||||
"devices": "Devices",
|
"devices": "Devices",
|
||||||
"select": "Select",
|
"select": "Select",
|
||||||
"connect_client_alert": "You're being controlled by {client}",
|
"connect_client_alert": "You're being controlled by {client}",
|
||||||
"this_device": "This Device",
|
"this_device": "This Device",
|
||||||
"remote": "Remote",
|
"remote": "Remote",
|
||||||
"stats": "Stats",
|
"stats": "Stats",
|
||||||
"and_n_more": "and {count} more",
|
"and_n_more": "and {count} more",
|
||||||
"recently_played": "Recently Played",
|
"recently_played": "Recently Played",
|
||||||
"browse_more": "Browse More",
|
"browse_more": "Browse More",
|
||||||
"no_title": "No Title",
|
"no_title": "No Title",
|
||||||
"not_playing": "Not playing",
|
"not_playing": "Not playing",
|
||||||
"epic_failure": "Epic failure!",
|
"epic_failure": "Epic failure!",
|
||||||
"added_num_tracks_to_queue": "Added {tracks_length} tracks to queue",
|
"added_num_tracks_to_queue": "Added {tracks_length} tracks to queue",
|
||||||
"spotube_has_an_update": "Spotube has an update",
|
"spotube_has_an_update": "Spotube has an update",
|
||||||
"download_now": "Download Now",
|
"download_now": "Download Now",
|
||||||
"nightly_version": "Spotube Nightly {nightlyBuildNum} has been released",
|
"nightly_version": "Spotube Nightly {nightlyBuildNum} has been released",
|
||||||
"release_version": "Spotube v{version} has been released",
|
"release_version": "Spotube v{version} has been released",
|
||||||
"read_the_latest": "Read the latest ",
|
"read_the_latest": "Read the latest ",
|
||||||
"release_notes": "release notes",
|
"release_notes": "release notes",
|
||||||
"pick_color_scheme": "Pick color scheme",
|
"pick_color_scheme": "Pick color scheme",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"choose_the_device": "Choose the device:",
|
"choose_the_device": "Choose the device:",
|
||||||
"multiple_device_connected": "There are multiple device connected.\nChoose the device you want this action to take place",
|
"multiple_device_connected": "There are multiple device connected.\nChoose the device you want this action to take place",
|
||||||
"nothing_found": "Nothing found",
|
"nothing_found": "Nothing found",
|
||||||
"the_box_is_empty": "The box is empty",
|
"the_box_is_empty": "The box is empty",
|
||||||
"top_artists": "Top Artists",
|
"top_artists": "Top Artists",
|
||||||
"top_albums": "Top Albums",
|
"top_albums": "Top Albums",
|
||||||
"this_week": "This week",
|
"this_week": "This week",
|
||||||
"this_month": "This month",
|
"this_month": "This month",
|
||||||
"last_6_months": "Last 6 months",
|
"last_6_months": "Last 6 months",
|
||||||
"this_year": "This year",
|
"this_year": "This year",
|
||||||
"last_2_years": "Last 2 years",
|
"last_2_years": "Last 2 years",
|
||||||
"all_time": "All time",
|
"all_time": "All time",
|
||||||
"powered_by_provider": "Powered by {providerName}",
|
"powered_by_provider": "Powered by {providerName}",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"profile_followers": "Followers",
|
"profile_followers": "Followers",
|
||||||
"birthday": "Birthday",
|
"birthday": "Birthday",
|
||||||
"subscription": "Subscription",
|
"subscription": "Subscription",
|
||||||
"not_born": "Not born",
|
"not_born": "Not born",
|
||||||
"hacker": "Hacker",
|
"hacker": "Hacker",
|
||||||
"profile": "Profile",
|
"profile": "Profile",
|
||||||
"no_name": "No Name",
|
"no_name": "No Name",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"user_profile": "User Profile",
|
"user_profile": "User Profile",
|
||||||
"count_plays": "{count} plays",
|
"count_plays": "{count} plays",
|
||||||
"streaming_fees_hypothetical": "Streaming fees (hypothetical)",
|
"streaming_fees_hypothetical": "Streaming fees (hypothetical)",
|
||||||
"minutes_listened": "Minutes listened",
|
"minutes_listened": "Minutes listened",
|
||||||
"streamed_songs": "Streamed songs",
|
"streamed_songs": "Streamed songs",
|
||||||
"count_streams": "{count} streams",
|
"count_streams": "{count} streams",
|
||||||
"owned_by_you": "Owned by you",
|
"owned_by_you": "Owned by you",
|
||||||
"copied_shareurl_to_clipboard": "Copied {shareUrl} to clipboard",
|
"copied_share_url_to_clipboard": "Copied {shareUrl} to clipboard",
|
||||||
"spotify_hipotetical_calculation": "*This is calculated based on Spotify's per stream\npayout of $0.003 to $0.005. This is a hypothetical\ncalculation to give user insight about how much they\nwould have paid to the artists if they were to listen\ntheir song in Spotify.",
|
"spotify_hypothetical_calculation": "*This is calculated based on Spotify's per stream\npayout of $0.003 to $0.005. This is a hypothetical\ncalculation to give user insight about how much they\nwould have paid to the artists if they were to listen\ntheir song in Spotify.",
|
||||||
"count_mins": "{minutes} mins",
|
"count_minutes": "{minutes} minutes",
|
||||||
"summary_minutes": "minutes",
|
"summary_minutes": "minutes",
|
||||||
"summary_listened_to_music": "Listened to music",
|
"summary_listened_to_music": "Listened to music",
|
||||||
"summary_songs": "songs",
|
"summary_songs": "songs",
|
||||||
"summary_streamed_overall": "Streamed overall",
|
"summary_streamed_overall": "Streamed overall",
|
||||||
"summary_owed_to_artists": "Owed to artists\nthis month",
|
"summary_owed_to_artists": "Owed to artists\nthis month",
|
||||||
"summary_artists": "artist's",
|
"summary_artists": "artist's",
|
||||||
"summary_music_reached_you": "Music reached you",
|
"summary_music_reached_you": "Music reached you",
|
||||||
"summary_full_albums": "full albums",
|
"summary_full_albums": "full albums",
|
||||||
"summary_got_your_love": "Got your love",
|
"summary_got_your_love": "Got your love",
|
||||||
"summary_playlists": "playlists",
|
"summary_playlists": "playlists",
|
||||||
"summary_were_on_repeat": "Were on repeat",
|
"summary_were_on_repeat": "Were on repeat",
|
||||||
"total_money": "Total {money}",
|
"total_money": "Total {money}",
|
||||||
"webview_not_found": "Webview not found",
|
"webview_not_found": "Webview not found",
|
||||||
"webview_not_found_description": "No webview runtime is installed in your device.\nIf it's installed make sure it's in the Environment PATH\n\nAfter installing, restart the app",
|
"webview_not_found_description": "No webview runtime is installed in your device.\nIf it's installed make sure it's in the Environment PATH\n\nAfter installing, restart the app",
|
||||||
"unsupported_platform": "Unsupported platform",
|
"unsupported_platform": "Unsupported platform",
|
||||||
"cache_music": "Cache music",
|
"cache_music": "Cache music",
|
||||||
"open": "Open",
|
"open": "Open",
|
||||||
"cache_folder": "Cache folder",
|
"cache_folder": "Cache folder",
|
||||||
"export": "Export",
|
"export": "Export",
|
||||||
"clear_cache": "Clear cache",
|
"clear_cache": "Clear cache",
|
||||||
"clear_cache_confirmation": "Do you want to clear the cache?",
|
"clear_cache_confirmation": "Do you want to clear the cache?",
|
||||||
"export_cache_files": "Export Cached Files",
|
"export_cache_files": "Export Cached Files",
|
||||||
"found_n_files": "Found {count} files",
|
"found_n_files": "Found {count} files",
|
||||||
"export_cache_confirmation": "Do you want to export these files to",
|
"export_cache_confirmation": "Do you want to export these files to",
|
||||||
"exported_n_out_of_m_files": "Exported {filesExported} out of {files} files",
|
"exported_n_out_of_m_files": "Exported {filesExported} out of {files} files",
|
||||||
"undo": "Undo",
|
"undo": "Undo",
|
||||||
"download_all": "Download all",
|
"download_all": "Download all",
|
||||||
"add_all_to_playlist": "Add all to playlist",
|
"add_all_to_playlist": "Add all to playlist",
|
||||||
"add_all_to_queue": "Add all to queue",
|
"add_all_to_queue": "Add all to queue",
|
||||||
"play_all_next": "Play all next",
|
"play_all_next": "Play all next",
|
||||||
"pause": "Pause",
|
"pause": "Pause",
|
||||||
"view_all": "View all",
|
"view_all": "View all",
|
||||||
"no_tracks_added_yet": "Looks like you haven't added any tracks yet",
|
"no_tracks_added_yet": "Looks like you haven't added any tracks yet",
|
||||||
"no_tracks": "Looks like there are no tracks here",
|
"no_tracks": "Looks like there are no tracks here",
|
||||||
"no_tracks_listened_yet": "Looks like you haven't listened to anything yet",
|
"no_tracks_listened_yet": "Looks like you haven't listened to anything yet",
|
||||||
"not_following_artists": "You're not following any artists",
|
"not_following_artists": "You're not following any artists",
|
||||||
"no_favorite_albums_yet": "Looks like you haven't added any albums to your favorites yet",
|
"no_favorite_albums_yet": "Looks like you haven't added any albums to your favorites yet",
|
||||||
"no_logs_found": "No logs found",
|
"no_logs_found": "No logs found",
|
||||||
"youtube_engine": "YouTube Engine",
|
"youtube_engine": "YouTube Engine",
|
||||||
"youtube_engine_not_installed_title": "{engine} is not installed",
|
"youtube_engine_not_installed_title": "{engine} is not installed",
|
||||||
"youtube_engine_not_installed_message": "{engine} is not installed in your system.",
|
"youtube_engine_not_installed_message": "{engine} is not installed in your system.",
|
||||||
"youtube_engine_set_path": "Make sure it's available in the PATH variable or\nset the absolute path to the {engine} executable below",
|
"youtube_engine_set_path": "Make sure it's available in the PATH variable or\nset the absolute path to the {engine} executable below",
|
||||||
"youtube_engine_unix_issue_message": "In macOS/Linux/unix like OS's, setting path on .zshrc/.bashrc/.bash_profile etc. won't work.\nYou need to set the path in the shell configuration file",
|
"youtube_engine_unix_issue_message": "In macOS/Linux/unix like OS's, setting path on .zshrc/.bashrc/.bash_profile etc. won't work.\nYou need to set the path in the shell configuration file",
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
"file_not_found": "File not found",
|
"file_not_found": "File not found",
|
||||||
"custom": "Custom",
|
"custom": "Custom",
|
||||||
"add_custom_url": "Add custom URL"
|
"add_custom_url": "Add custom URL"
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "Reproductor Mini",
|
"mini_player": "Reproductor Mini",
|
||||||
"slide_to_seek": "Desliza para buscar adelante o atrás",
|
"slide_to_seek": "Desliza para buscar adelante o atrás",
|
||||||
"shuffle_playlist": "Reproducir lista en orden aleatorio",
|
"shuffle_playlist": "Reproducir lista en orden aleatorio",
|
||||||
"unshuffle_playlist": "Desactivar reproducción aleatoria",
|
"not_shuffle_playlist": "Desactivar reproducción aleatoria",
|
||||||
"previous_track": "Pista anterior",
|
"previous_track": "Pista anterior",
|
||||||
"next_track": "Pista siguiente",
|
"next_track": "Pista siguiente",
|
||||||
"pause_playback": "Pausar reproducción",
|
"pause_playback": "Pausar reproducción",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "Primero, ve a",
|
"first_go_to": "Primero, ve a",
|
||||||
"login_if_not_logged_in": "e inicia sesión/registra tu cuenta si no lo has hecho aún",
|
"login_if_not_logged_in": "e inicia sesión/registra tu cuenta si no lo has hecho aún",
|
||||||
"step_2": "Paso 2",
|
"step_2": "Paso 2",
|
||||||
"step_2_steps": "1. Una vez que hayas iniciado sesión, presiona F12 o haz clic derecho con el ratón > Inspeccionar para abrir las herramientas de desarrollo del navegador.\n2. Luego ve a la pestaña \"Application\" (Chrome, Edge, Brave, etc.) o \"Storage\" (Firefox, Palemoon, etc.)\n3. Ve a la sección \"Cookies\" y luego la subsección \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Una vez que hayas iniciado sesión, presiona F12 o haz clic derecho con el ratón > Inspeccionar para abrir las herramientas de desarrollo del navegador.\n2. Luego ve a la pestaña \"Application\" (Chrome, Edge, Brave, etc.) o \"Storage\" (Firefox, Pale Moon, etc.)\n3. Ve a la sección \"Cookies\" y luego la subsección \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Paso 3",
|
"step_3": "Paso 3",
|
||||||
"success_emoji": "¡Éxito! 🥳",
|
"success_emoji": "¡Éxito! 🥳",
|
||||||
"success_message": "Ahora has iniciado sesión con éxito en tu cuenta de Spotify. ¡Buen trabajo!",
|
"success_message": "Ahora has iniciado sesión con éxito en tu cuenta de Spotify. ¡Buen trabajo!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "Agregar Géneros",
|
"add_genres": "Agregar Géneros",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
"number_of_tracks_generate": "Número de canciones a generar",
|
"number_of_tracks_generate": "Número de canciones a generar",
|
||||||
"acousticness": "Acousticness",
|
"not_acoustic": "not_acoustic",
|
||||||
"danceability": "Danceability",
|
"dance_ability": "dance_ability",
|
||||||
"energy": "Energía",
|
"energy": "Energía",
|
||||||
"instrumentalness": "Instrumentalidad",
|
"not_instrumental": "Instrumentalidad",
|
||||||
"liveness": "En vivo",
|
"liveness": "En vivo",
|
||||||
"loudness": "Volumen",
|
"loudness": "Volumen",
|
||||||
"speechiness": "Habla",
|
"talkative": "Habla",
|
||||||
"valence": "Valencia",
|
"valence": "Valencia",
|
||||||
"popularity": "Popularidad",
|
"popularity": "Popularidad",
|
||||||
"key": "Tono",
|
"key": "Tono",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "Ordenar por más recientes",
|
"sort_newest": "Ordenar por más recientes",
|
||||||
"sort_oldest": "Ordenar por más antiguos",
|
"sort_oldest": "Ordenar por más antiguos",
|
||||||
"sleep_timer": "Temporizador de apagado",
|
"sleep_timer": "Temporizador de apagado",
|
||||||
"mins": "{minutes} minutos",
|
"minutes": "{minutes} minutos",
|
||||||
"hours": "{hours} horas",
|
"hours": "{hours} horas",
|
||||||
"hour": "{hours} hora",
|
"hour": "{hours} hora",
|
||||||
"custom_hours": "Horas personalizadas",
|
"custom_hours": "Horas personalizadas",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "Fuente de audio",
|
"audio_source": "Fuente de audio",
|
||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"failed_to_encrypt": "Error al cifrar",
|
"failed_to_encrypt": "Error al cifrar",
|
||||||
"encryption_failed_warning": "Spotube utiliza el cifrado para almacenar sus datos de forma segura. Pero ha fallado. Por lo tanto, volverá a un almacenamiento no seguro\nSi está utilizando Linux, asegúrese de tener instalados servicios secretos como gnome-keyring, kde-wallet y keepassxc",
|
"encryption_failed_warning": "Spotube utiliza el cifrado para almacenar sus datos de forma segura. Pero ha fallado. Por lo tanto, volverá a un almacenamiento no seguro\nSi está utilizando Linux, asegúrese de tener instalados servicios secretos como gnome-keyring, kde-wallet y KeePassXC",
|
||||||
"querying_info": "Consultando información...",
|
"querying_info": "Consultando información...",
|
||||||
"piped_api_down": "La API de Piped no está disponible",
|
"piped_api_down": "La API de Piped no está disponible",
|
||||||
"piped_down_error_instructions": "La instancia de Piped {pipedInstance} no está funcionando en este momento\n\nCambie la instancia o cambie el 'Tipo de API' a la API oficial de YouTube\n\nAsegúrese de reiniciar la aplicación después del cambio",
|
"piped_down_error_instructions": "La instancia de Piped {pipedInstance} no está funcionando en este momento\n\nCambie la instancia o cambie el 'Tipo de API' a la API oficial de YouTube\n\nAsegúrese de reiniciar la aplicación después del cambio",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "Canciones reproducidas",
|
"streamed_songs": "Canciones reproducidas",
|
||||||
"count_streams": "{count} streams",
|
"count_streams": "{count} streams",
|
||||||
"owned_by_you": "En tu posesión",
|
"owned_by_you": "En tu posesión",
|
||||||
"copied_shareurl_to_clipboard": "Copiado {shareUrl} al portapapeles",
|
"copied_share_url_to_clipboard": "Copiado {shareUrl} al portapapeles",
|
||||||
"spotify_hipotetical_calculation": "*Esto se calcula en base al\npago por stream de Spotify de $0.003 a $0.005.\nEs un cálculo hipotético para dar\nuna idea de cuánto habría\npagado a los artistas si hubieras escuchado\nsu canción en Spotify.",
|
"spotify_hypothetical_calculation": "*Esto se calcula en base al\npago por stream de Spotify de $0.003 a $0.005.\nEs un cálculo hipotético para dar\nuna idea de cuánto habría\npagado a los artistas si hubieras escuchado\nsu canción en Spotify.",
|
||||||
"count_mins": "{minutes} minutos",
|
"count_minutes": "{minutes} minutos",
|
||||||
"summary_minutes": "minutos",
|
"summary_minutes": "minutos",
|
||||||
"summary_listened_to_music": "Escuchó música",
|
"summary_listened_to_music": "Escuchó música",
|
||||||
"summary_songs": "canciones",
|
"summary_songs": "canciones",
|
||||||
|
@ -91,7 +91,7 @@
|
|||||||
"mini_player": "Mini Erreproduzitzailea",
|
"mini_player": "Mini Erreproduzitzailea",
|
||||||
"slide_to_seek": "Arrastatu aurrerantz edo atzearantz bilatzeko",
|
"slide_to_seek": "Arrastatu aurrerantz edo atzearantz bilatzeko",
|
||||||
"shuffle_playlist": "Erreproduzitu zerrenda ausazko ordenean",
|
"shuffle_playlist": "Erreproduzitu zerrenda ausazko ordenean",
|
||||||
"unshuffle_playlist": "Desgaitu ausazko erreprodukzioa",
|
"not_shuffle_playlist": "Desgaitu ausazko erreprodukzioa",
|
||||||
"previous_track": "Aurreko pista",
|
"previous_track": "Aurreko pista",
|
||||||
"next_track": "Hurrengo pista",
|
"next_track": "Hurrengo pista",
|
||||||
"pause_playback": "Pausatu erreprodukzioa",
|
"pause_playback": "Pausatu erreprodukzioa",
|
||||||
@ -179,7 +179,7 @@
|
|||||||
"first_go_to": "Hasteko, joan hona",
|
"first_go_to": "Hasteko, joan hona",
|
||||||
"login_if_not_logged_in": "eta hasi saioa/sortu kontua lehendik ez baduzu eginda",
|
"login_if_not_logged_in": "eta hasi saioa/sortu kontua lehendik ez baduzu eginda",
|
||||||
"step_2": "2. pausua",
|
"step_2": "2. pausua",
|
||||||
"step_2_steps": "1. Saioa hasita duzularik, sakatu F12 edo saguaren eskuineko botoia klikatu > Ikuskatu nabigatzaileko garapen tresnak irekitzeko.\n2. Joan \"Aplikazio\" (Chrome, Edge, Brave, etab.) edo \"Biltegiratzea\" (Firefox, Palemoon, etab.)\n3. Joan \"Cookieak\" atalera eta gero \"https://accounts.spotify.com\" azpiatalera",
|
"step_2_steps": "1. Saioa hasita duzularik, sakatu F12 edo saguaren eskuineko botoia klikatu > Ikuskatu nabigatzaileko garapen tresnak irekitzeko.\n2. Joan \"Aplikazio\" (Chrome, Edge, Brave, etab.) edo \"Biltegiratzea\" (Firefox, Pale Moon, etab.)\n3. Joan \"Cookieak\" atalera eta gero \"https://accounts.spotify.com\" azpiatalera",
|
||||||
"step_3": "3. pausua",
|
"step_3": "3. pausua",
|
||||||
"step_3_steps": "Kopiatu \"sp_dc\" cookiearen balioa",
|
"step_3_steps": "Kopiatu \"sp_dc\" cookiearen balioa",
|
||||||
"success_emoji": "Eginda! 🥳",
|
"success_emoji": "Eginda! 🥳",
|
||||||
@ -202,13 +202,13 @@
|
|||||||
"add_genres": "Gehitu Generoak",
|
"add_genres": "Gehitu Generoak",
|
||||||
"country": "Herrialdea",
|
"country": "Herrialdea",
|
||||||
"number_of_tracks_generate": "Sortzeko kanta kopurua",
|
"number_of_tracks_generate": "Sortzeko kanta kopurua",
|
||||||
"acousticness": "Akustikotasuna",
|
"not_acoustic": "Akustikotasuna",
|
||||||
"danceability": "Dantzagarritasuna",
|
"dance_ability": "Dantzagarritasuna",
|
||||||
"energy": "Energia",
|
"energy": "Energia",
|
||||||
"instrumentalness": "Instrumentaltasuna",
|
"not_instrumental": "Instrumentaltasuna",
|
||||||
"liveness": "Zuzenean",
|
"liveness": "Zuzenean",
|
||||||
"loudness": "Ozentasuna",
|
"loudness": "Ozentasuna",
|
||||||
"speechiness": "Hitzaldia",
|
"talkative": "Hitzaldia",
|
||||||
"valence": "Balentzia",
|
"valence": "Balentzia",
|
||||||
"popularity": "Populartasuna",
|
"popularity": "Populartasuna",
|
||||||
"key": "Tonua",
|
"key": "Tonua",
|
||||||
@ -247,7 +247,7 @@
|
|||||||
"sort_newest": "Ordenatu gehitu berrienetik",
|
"sort_newest": "Ordenatu gehitu berrienetik",
|
||||||
"sort_oldest": "Ordenatu gehitu zaharrenetik",
|
"sort_oldest": "Ordenatu gehitu zaharrenetik",
|
||||||
"sleep_timer": "Itzaltzeko tenporizadorea",
|
"sleep_timer": "Itzaltzeko tenporizadorea",
|
||||||
"mins": "{minutes} minutu",
|
"minutes": "{minutes} minutu",
|
||||||
"hours": "{hours} ordu",
|
"hours": "{hours} ordu",
|
||||||
"hour": "{hours} ordu",
|
"hour": "{hours} ordu",
|
||||||
"custom_hours": "Ordu pertsonalizatuak",
|
"custom_hours": "Ordu pertsonalizatuak",
|
||||||
@ -258,7 +258,7 @@
|
|||||||
"audio_source": "Audio Iturria",
|
"audio_source": "Audio Iturria",
|
||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"failed_to_encrypt": "Errorea zifratzean",
|
"failed_to_encrypt": "Errorea zifratzean",
|
||||||
"encryption_failed_warning": "Spotube-ek zifratzea darabil datuak modu seguruan biltegiratzeko. Baina huts egin du. Hori dela eta, biltegiratzea ez da segurua izango\nLinux erabiltzen ari bazara, ziurtatu edozein sekretu-zerbitzu (gnome-keyring, kde-wallet, keepassxc etab.) instalatuta duzula",
|
"encryption_failed_warning": "Spotube-ek zifratzea darabil datuak modu seguruan biltegiratzeko. Baina huts egin du. Hori dela eta, biltegiratzea ez da segurua izango\nLinux erabiltzen ari bazara, ziurtatu edozein sekretu-zerbitzu (gnome-keyring, kde-wallet, KeePassXC etab.) instalatuta duzula",
|
||||||
"querying_info": "Informazioa egiaztatzen...",
|
"querying_info": "Informazioa egiaztatzen...",
|
||||||
"piped_api_down": "Piped-en APIa ez dago eskuragarri",
|
"piped_api_down": "Piped-en APIa ez dago eskuragarri",
|
||||||
"piped_down_error_instructions": "Piped-en {pipedInstance} instantzia ez dago martxan une honetan\n\nAldatu instantzia edo aldatu 'API mota' YouTuberen API ofizialera\n\nZiurtatu aplikazioa berrabiarazten duzula aldaketa eta gero",
|
"piped_down_error_instructions": "Piped-en {pipedInstance} instantzia ez dago martxan une honetan\n\nAldatu instantzia edo aldatu 'API mota' YouTuberen API ofizialera\n\nZiurtatu aplikazioa berrabiarazten duzula aldaketa eta gero",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "Streaming-ez entzundako kantak",
|
"streamed_songs": "Streaming-ez entzundako kantak",
|
||||||
"count_streams": "{count} stream",
|
"count_streams": "{count} stream",
|
||||||
"owned_by_you": "Zure jabetzakoa",
|
"owned_by_you": "Zure jabetzakoa",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} arbelera kopiatua",
|
"copied_share_url_to_clipboard": "{shareUrl} arbelera kopiatua",
|
||||||
"spotify_hipotetical_calculation": "*Sportify-k stream bakoitzeko duen $0.003 eta $0.005\nordainsarian oinarritua da. Kalkulu hipotetiko bat,\nkanta hauek Spotify-n entzun bazenitu,\nberaiek artistari zenbat ordaiduko lioketen jakin dezazun.",
|
"spotify_hypothetical_calculation": "*Sportify-k stream bakoitzeko duen $0.003 eta $0.005\nordainsarian oinarritua da. Kalkulu hipotetiko bat,\nkanta hauek Spotify-n entzun bazenitu,\nberaiek artistari zenbat ordaiduko lioketen jakin dezazun.",
|
||||||
"count_mins": "{minutes} minutu",
|
"count_minutes": "{minutes} minutu",
|
||||||
"summary_minutes": "minutu",
|
"summary_minutes": "minutu",
|
||||||
"summary_listened_to_music": "Musika entzuten",
|
"summary_listened_to_music": "Musika entzuten",
|
||||||
"summary_songs": "kanta",
|
"summary_songs": "kanta",
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
"mini_player": "پخش کننده ",
|
"mini_player": "پخش کننده ",
|
||||||
"slide_to_seek": "برای جستجو عقب یا جلو بکشید",
|
"slide_to_seek": "برای جستجو عقب یا جلو بکشید",
|
||||||
"shuffle_playlist": "پخش تصادفی",
|
"shuffle_playlist": "پخش تصادفی",
|
||||||
"unshuffle_playlist": "خاموش کردن پخش تصادفی",
|
"not_shuffle_playlist": "خاموش کردن پخش تصادفی",
|
||||||
"previous_track": "آهنگ قبلی",
|
"previous_track": "آهنگ قبلی",
|
||||||
"next_track": "آهنگ بعدی",
|
"next_track": "آهنگ بعدی",
|
||||||
"pause_playback": "توقف آهنگ",
|
"pause_playback": "توقف آهنگ",
|
||||||
@ -175,7 +175,7 @@
|
|||||||
"first_go_to": "اول برو داخل ",
|
"first_go_to": "اول برو داخل ",
|
||||||
"login_if_not_logged_in": "و اگر وارد نشده اید، وارد/ثبت نام کنید",
|
"login_if_not_logged_in": "و اگر وارد نشده اید، وارد/ثبت نام کنید",
|
||||||
"step_2": "گام 2",
|
"step_2": "گام 2",
|
||||||
"step_2_steps": "1. پس از ورود به سیستم، F12 یا کلیک راست ماوس > Inspect را فشار دهید تا ابزارهای توسعه مرورگر باز شود..\n2. سپس به تب \"Application\" (Chrome, Edge, Brave etc..) یا \"Storage\" Tab (Firefox, Palemoon etc..)\n3. به قسمت \"Cookies\" و به پخش \"https://accounts.spotify.com\" بروید",
|
"step_2_steps": "1. پس از ورود به سیستم، F12 یا کلیک راست ماوس > Inspect را فشار دهید تا ابزارهای توسعه مرورگر باز شود..\n2. سپس به تب \"Application\" (Chrome, Edge, Brave etc..) یا \"Storage\" Tab (Firefox, Pale Moon etc..)\n3. به قسمت \"Cookies\" و به پخش \"https://accounts.spotify.com\" بروید",
|
||||||
"step_3": "گام 3",
|
"step_3": "گام 3",
|
||||||
"success_emoji": "موفقیت🥳",
|
"success_emoji": "موفقیت🥳",
|
||||||
"success_message": "اکنون با موفقیت با حساب اسپوتیفای خود وارد شده اید",
|
"success_message": "اکنون با موفقیت با حساب اسپوتیفای خود وارد شده اید",
|
||||||
@ -196,13 +196,13 @@
|
|||||||
"add_genres": "ژانر را اطافه کنید",
|
"add_genres": "ژانر را اطافه کنید",
|
||||||
"country": "کشور",
|
"country": "کشور",
|
||||||
"number_of_tracks_generate": "تعداد آهنگ های ساخته شده",
|
"number_of_tracks_generate": "تعداد آهنگ های ساخته شده",
|
||||||
"acousticness": "آکوستیک",
|
"not_acoustic": "آکوستیک",
|
||||||
"danceability": "رقصیدن",
|
"dance_ability": "رقصیدن",
|
||||||
"energy": "انرژی",
|
"energy": "انرژی",
|
||||||
"instrumentalness": "بی کلام",
|
"not_instrumental": "بی کلام",
|
||||||
"liveness": "حس زندگی",
|
"liveness": "حس زندگی",
|
||||||
"loudness": "صدای بلند",
|
"loudness": "صدای بلند",
|
||||||
"speechiness": "دکلمه",
|
"talkative": "دکلمه",
|
||||||
"valence": "ظرفیت",
|
"valence": "ظرفیت",
|
||||||
"popularity": "محبوبیت",
|
"popularity": "محبوبیت",
|
||||||
"key": "کلید",
|
"key": "کلید",
|
||||||
@ -241,7 +241,7 @@
|
|||||||
"sort_newest": "مرتب سازی بر اساس جدید ترین اضافه شده",
|
"sort_newest": "مرتب سازی بر اساس جدید ترین اضافه شده",
|
||||||
"sort_oldest": "مرتب سازی بر اساس قدیمی ترین اضافه شده",
|
"sort_oldest": "مرتب سازی بر اساس قدیمی ترین اضافه شده",
|
||||||
"sleep_timer": "زمان خواب",
|
"sleep_timer": "زمان خواب",
|
||||||
"mins": "{minutes} دقیقه",
|
"minutes": "{minutes} دقیقه",
|
||||||
"hours": "{hours} ساعت",
|
"hours": "{hours} ساعت",
|
||||||
"hour": "{hours} ساعت",
|
"hour": "{hours} ساعت",
|
||||||
"custom_hours": "ساعت سفارشی",
|
"custom_hours": "ساعت سفارشی",
|
||||||
@ -252,7 +252,7 @@
|
|||||||
"audio_source": "منبع صدا",
|
"audio_source": "منبع صدا",
|
||||||
"ok": "باشد",
|
"ok": "باشد",
|
||||||
"failed_to_encrypt": "رمز گذاری نشده",
|
"failed_to_encrypt": "رمز گذاری نشده",
|
||||||
"encryption_failed_warning": "Spotube از رمزگذاری برای ذخیره ایمن داده های شما استفاده می کند. اما موفق به انجام این کار نشد. بنابراین به فضای ذخیرهسازی ناامن تبدیل میشود\nاگر از لینوکس استفاده میکنید، لطفاً مطمئن شوید که سرویس مخفی (gnome-keyring، kde-wallet، keepassxc و غیره) را نصب کردهاید.",
|
"encryption_failed_warning": "Spotube از رمزگذاری برای ذخیره ایمن داده های شما استفاده می کند. اما موفق به انجام این کار نشد. بنابراین به فضای ذخیرهسازی ناامن تبدیل میشود\nاگر از لینوکس استفاده میکنید، لطفاً مطمئن شوید که سرویس مخفی (gnome-keyring، kde-wallet، KeePassXC و غیره) را نصب کردهاید.",
|
||||||
"querying_info": "جستجو درباره ",
|
"querying_info": "جستجو درباره ",
|
||||||
"piped_api_down": "ایراد در سرور",
|
"piped_api_down": "ایراد در سرور",
|
||||||
"piped_down_error_instructions": "به دلیل مشکل {pipedInstance} ارتباط با سرور مقدور نیست\n\nنمونه را تغییر دهید یا «نوع API» را به API رسمی YouTube تغییر دهید\n\nحتماً پس از تغییر، برنامه را دوباره راهاندازی کنید",
|
"piped_down_error_instructions": "به دلیل مشکل {pipedInstance} ارتباط با سرور مقدور نیست\n\nنمونه را تغییر دهید یا «نوع API» را به API رسمی YouTube تغییر دهید\n\nحتماً پس از تغییر، برنامه را دوباره راهاندازی کنید",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "ترانههای پخش شده",
|
"streamed_songs": "ترانههای پخش شده",
|
||||||
"count_streams": "{count} پخش",
|
"count_streams": "{count} پخش",
|
||||||
"owned_by_you": "توسط شما مالکیت شده",
|
"owned_by_you": "توسط شما مالکیت شده",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} به کلیپبورد کپی شد",
|
"copied_share_url_to_clipboard": "{shareUrl} به کلیپبورد کپی شد",
|
||||||
"spotify_hipotetical_calculation": "*این بر اساس پرداخت هر پخش اسپاتیفای\nبه مبلغ 0.003 تا 0.005 دلار محاسبه شده است.\nاین یک محاسبه فرضی است که به کاربران نشان دهد چقدر ممکن است\nبه هنرمندان پرداخت میکردند اگر ترانه آنها را در اسپاتیفای گوش میدادند.",
|
"spotify_hypothetical_calculation": "*این بر اساس پرداخت هر پخش اسپاتیفای\nبه مبلغ 0.003 تا 0.005 دلار محاسبه شده است.\nاین یک محاسبه فرضی است که به کاربران نشان دهد چقدر ممکن است\nبه هنرمندان پرداخت میکردند اگر ترانه آنها را در اسپاتیفای گوش میدادند.",
|
||||||
"count_mins": "{minutes} دقیقه",
|
"count_minutes": "{minutes} دقیقه",
|
||||||
"summary_minutes": "دقیقهها",
|
"summary_minutes": "دقیقهها",
|
||||||
"summary_listened_to_music": "به موسیقی گوش داده شده",
|
"summary_listened_to_music": "به موسیقی گوش داده شده",
|
||||||
"summary_songs": "ترانهها",
|
"summary_songs": "ترانهها",
|
||||||
|
@ -91,7 +91,7 @@
|
|||||||
"mini_player": "Minisoitin",
|
"mini_player": "Minisoitin",
|
||||||
"slide_to_seek": "Liu'uta mennäkseen eteenpäin tai taaksepäin",
|
"slide_to_seek": "Liu'uta mennäkseen eteenpäin tai taaksepäin",
|
||||||
"shuffle_playlist": "Sekoita soittolista",
|
"shuffle_playlist": "Sekoita soittolista",
|
||||||
"unshuffle_playlist": "Poista sekoitus soittolistasta",
|
"not_shuffle_playlist": "Poista sekoitus soittolistasta",
|
||||||
"previous_track": "Äskeinen kappale",
|
"previous_track": "Äskeinen kappale",
|
||||||
"next_track": "Seuraava kappale",
|
"next_track": "Seuraava kappale",
|
||||||
"pause_playback": "Pysäytä soittolistan toisto",
|
"pause_playback": "Pysäytä soittolistan toisto",
|
||||||
@ -176,7 +176,7 @@
|
|||||||
"first_go_to": "Ensiksi, mene",
|
"first_go_to": "Ensiksi, mene",
|
||||||
"login_if_not_logged_in": "ja Kirjaudu/Tee tili jos et ole kirjautunut sisään",
|
"login_if_not_logged_in": "ja Kirjaudu/Tee tili jos et ole kirjautunut sisään",
|
||||||
"step_2": "Vaihe 2",
|
"step_2": "Vaihe 2",
|
||||||
"step_2_steps": "1. Kun olet kirjautunut, paina F12 tai oikeaa hiiren näppäintä > Tarkista ja avaa selaimen kehittäjä työkalut.\n2. Mene sitten \"Application\"-välilehteen (Chrome, Edge, Brave jne..) tai \"Storage\"-välilehteen (Firefox, Palemoon jne..)\n3. Mene \"Cookies\"-osastoon, sitten \"https://accounts.spotify.com\" alakohtaan.",
|
"step_2_steps": "1. Kun olet kirjautunut, paina F12 tai oikeaa hiiren näppäintä > Tarkista ja avaa selaimen kehittäjä työkalut.\n2. Mene sitten \"Application\"-välilehteen (Chrome, Edge, Brave jne..) tai \"Storage\"-välilehteen (Firefox, Pale Moon jne..)\n3. Mene \"Cookies\"-osastoon, sitten \"https://accounts.spotify.com\" alakohtaan.",
|
||||||
"step_3": "Vaihe 3",
|
"step_3": "Vaihe 3",
|
||||||
"step_3_steps": "Kopioi Keksin \"sp_dc\" arvo",
|
"step_3_steps": "Kopioi Keksin \"sp_dc\" arvo",
|
||||||
"success_emoji": "Onnistuit🥳",
|
"success_emoji": "Onnistuit🥳",
|
||||||
@ -199,13 +199,13 @@
|
|||||||
"add_genres": "Lisää Genrejä",
|
"add_genres": "Lisää Genrejä",
|
||||||
"country": "Maa",
|
"country": "Maa",
|
||||||
"number_of_tracks_generate": "Numero tuotettavia kappaleita",
|
"number_of_tracks_generate": "Numero tuotettavia kappaleita",
|
||||||
"acousticness": "Akustisuus",
|
"not_acoustic": "Akustisuus",
|
||||||
"danceability": "Tanssittavuus",
|
"dance_ability": "Tanssittavuus",
|
||||||
"energy": "Energia",
|
"energy": "Energia",
|
||||||
"instrumentalness": "Instrumentaalisuus",
|
"not_instrumental": "Instrumentaalisuus",
|
||||||
"liveness": "Elävyyttä",
|
"liveness": "Elävyyttä",
|
||||||
"loudness": "Äänekkyys",
|
"loudness": "Äänekkyys",
|
||||||
"speechiness": "Puheisuus",
|
"talkative": "Puheisuus",
|
||||||
"valence": "Valenssi",
|
"valence": "Valenssi",
|
||||||
"popularity": "Suosio",
|
"popularity": "Suosio",
|
||||||
"key": "Sävellaji",
|
"key": "Sävellaji",
|
||||||
@ -244,7 +244,7 @@
|
|||||||
"sort_newest": "Suodata uusimmista",
|
"sort_newest": "Suodata uusimmista",
|
||||||
"sort_oldest": "Suodata vanhimmista",
|
"sort_oldest": "Suodata vanhimmista",
|
||||||
"sleep_timer": "Uniajastin",
|
"sleep_timer": "Uniajastin",
|
||||||
"mins": "{minutes} Minuuttia",
|
"minutes": "{minutes} Minuuttia",
|
||||||
"hours": "{hours} Tuntia",
|
"hours": "{hours} Tuntia",
|
||||||
"hour": "{hours} Tunti",
|
"hour": "{hours} Tunti",
|
||||||
"custom_hours": "Mukautetut tunnit",
|
"custom_hours": "Mukautetut tunnit",
|
||||||
@ -255,7 +255,7 @@
|
|||||||
"audio_source": "Äänilähde",
|
"audio_source": "Äänilähde",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"failed_to_encrypt": "Salaaminen epäonnistui",
|
"failed_to_encrypt": "Salaaminen epäonnistui",
|
||||||
"encryption_failed_warning": "Spotube käyttää salausta tallentaakseen tietosi, mutta epäonnistui, joten se palaa epäturvalliseen tallennukseen\nJos käytät Linuxia, varmista että sinulla on turvallisuuspalvelu (gnome-keyring, kde-wallet, keepassxc jne) asennettu",
|
"encryption_failed_warning": "Spotube käyttää salausta tallentaakseen tietosi, mutta epäonnistui, joten se palaa epäturvalliseen tallennukseen\nJos käytät Linuxia, varmista että sinulla on turvallisuuspalvelu (gnome-keyring, kde-wallet, KeePassXC jne) asennettu",
|
||||||
"querying_info": "Hankitaan tietoa...",
|
"querying_info": "Hankitaan tietoa...",
|
||||||
"piped_api_down": "Johdettu palvelinesiintymä on alhaalla",
|
"piped_api_down": "Johdettu palvelinesiintymä on alhaalla",
|
||||||
"piped_down_error_instructions": "Johdettu palvelinesiintymä {pipedInstance} on alhaalla.\n\nVaihda joko ilmeytymä tia vahda 'API tyyppi' YouTuben viralliseen API\n\nKäynnistä sovellus uudestaan vaihdon jälkeen",
|
"piped_down_error_instructions": "Johdettu palvelinesiintymä {pipedInstance} on alhaalla.\n\nVaihda joko ilmeytymä tia vahda 'API tyyppi' YouTuben viralliseen API\n\nKäynnistä sovellus uudestaan vaihdon jälkeen",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "Suoratoistettuja kappaleita",
|
"streamed_songs": "Suoratoistettuja kappaleita",
|
||||||
"count_streams": "{count} suoratoistoa",
|
"count_streams": "{count} suoratoistoa",
|
||||||
"owned_by_you": "Sinun omistama",
|
"owned_by_you": "Sinun omistama",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} kopioitu leikepöydälle",
|
"copied_share_url_to_clipboard": "{shareUrl} kopioitu leikepöydälle",
|
||||||
"spotify_hipotetical_calculation": "*Tämä on laskettu Spotifyn suoratoiston\nmaksun perusteella, joka on 0,003–0,005 dollaria.\nTämä on hypoteettinen laskelma, joka antaa käyttäjälle käsityksen\nsiitä, kuinka paljon he olisivat maksaneet artisteille,\njollei heidän kappaleensa olisi kuunneltu Spotifyssa.",
|
"spotify_hypothetical_calculation": "*Tämä on laskettu Spotifyn suoratoiston\nmaksun perusteella, joka on 0,003–0,005 dollaria.\nTämä on hypoteettinen laskelma, joka antaa käyttäjälle käsityksen\nsiitä, kuinka paljon he olisivat maksaneet artisteille,\njollei heidän kappaleensa olisi kuunneltu Spotifyssa.",
|
||||||
"count_mins": "{minutes} min",
|
"count_minutes": "{minutes} min",
|
||||||
"summary_minutes": "minuuttia",
|
"summary_minutes": "minuuttia",
|
||||||
"summary_listened_to_music": "Kuunneltu musiikkia",
|
"summary_listened_to_music": "Kuunneltu musiikkia",
|
||||||
"summary_songs": "kappaletta",
|
"summary_songs": "kappaletta",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "Lecteur mini",
|
"mini_player": "Lecteur mini",
|
||||||
"slide_to_seek": "Faites glisser pour avancer ou reculer",
|
"slide_to_seek": "Faites glisser pour avancer ou reculer",
|
||||||
"shuffle_playlist": "Lecture aléatoire de la liste de lecture",
|
"shuffle_playlist": "Lecture aléatoire de la liste de lecture",
|
||||||
"unshuffle_playlist": "Annuler la lecture aléatoire de la liste de lecture",
|
"not_shuffle_playlist": "Annuler la lecture aléatoire de la liste de lecture",
|
||||||
"previous_track": "Piste précédente",
|
"previous_track": "Piste précédente",
|
||||||
"next_track": "Piste suivante",
|
"next_track": "Piste suivante",
|
||||||
"pause_playback": "Mettre en pause la lecture",
|
"pause_playback": "Mettre en pause la lecture",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "Tout d'abord, allez sur",
|
"first_go_to": "Tout d'abord, allez sur",
|
||||||
"login_if_not_logged_in": "et connectez-vous/inscrivez-vous si vous n'êtes pas connecté",
|
"login_if_not_logged_in": "et connectez-vous/inscrivez-vous si vous n'êtes pas connecté",
|
||||||
"step_2": "Étape 2",
|
"step_2": "Étape 2",
|
||||||
"step_2_steps": "1. Une fois connecté, appuyez sur F12 ou clic droit de la souris > Inspecter pour ouvrir les outils de développement du navigateur.\n2. Ensuite, allez dans l'onglet \"Application\" (Chrome, Edge, Brave, etc.) ou l'onglet \"Stockage\" (Firefox, Palemoon, etc.)\n3. Allez dans la section \"Cookies\", puis dans la sous-section \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Une fois connecté, appuyez sur F12 ou clic droit de la souris > Inspecter pour ouvrir les outils de développement du navigateur.\n2. Ensuite, allez dans l'onglet \"Application\" (Chrome, Edge, Brave, etc.) ou l'onglet \"Stockage\" (Firefox, Pale Moon, etc.)\n3. Allez dans la section \"Cookies\", puis dans la sous-section \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Étape 3",
|
"step_3": "Étape 3",
|
||||||
"success_emoji": "Succès🥳",
|
"success_emoji": "Succès🥳",
|
||||||
"success_message": "Vous êtes maintenant connecté avec succès à votre compte Spotify. Bon travail, mon ami!",
|
"success_message": "Vous êtes maintenant connecté avec succès à votre compte Spotify. Bon travail, mon ami!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "Ajouter des genres",
|
"add_genres": "Ajouter des genres",
|
||||||
"country": "Pays",
|
"country": "Pays",
|
||||||
"number_of_tracks_generate": "Nombre de pistes à générer",
|
"number_of_tracks_generate": "Nombre de pistes à générer",
|
||||||
"acousticness": "Acoustique",
|
"not_acoustic": "Acoustique",
|
||||||
"danceability": "Dansabilité",
|
"dance_ability": "Dansabilité",
|
||||||
"energy": "Énergie",
|
"energy": "Énergie",
|
||||||
"instrumentalness": "Instrumentalité",
|
"not_instrumental": "Instrumentalité",
|
||||||
"liveness": "Interprétation en direct",
|
"liveness": "Interprétation en direct",
|
||||||
"loudness": "Sonorité",
|
"loudness": "Sonorité",
|
||||||
"speechiness": "Parlé",
|
"talkative": "Parlé",
|
||||||
"valence": "Valeur émotionnelle",
|
"valence": "Valeur émotionnelle",
|
||||||
"popularity": "Popularité",
|
"popularity": "Popularité",
|
||||||
"key": "Clé",
|
"key": "Clé",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "Trier par les plus récents",
|
"sort_newest": "Trier par les plus récents",
|
||||||
"sort_oldest": "Trier par les plus anciens",
|
"sort_oldest": "Trier par les plus anciens",
|
||||||
"sleep_timer": "Minuteur de veille",
|
"sleep_timer": "Minuteur de veille",
|
||||||
"mins": "{minutes} minutes",
|
"minutes": "{minutes} minutes",
|
||||||
"hours": "{hours} heures",
|
"hours": "{hours} heures",
|
||||||
"hour": "{hours} heure",
|
"hour": "{hours} heure",
|
||||||
"custom_hours": "Heures personnalisées",
|
"custom_hours": "Heures personnalisées",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "Source audio",
|
"audio_source": "Source audio",
|
||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"failed_to_encrypt": "Échec de la cryptage",
|
"failed_to_encrypt": "Échec de la cryptage",
|
||||||
"encryption_failed_warning": "Spotube utilise le cryptage pour stocker vos données en toute sécurité. Mais cela a échoué. Il basculera donc vers un stockage non sécurisé\nSi vous utilisez Linux, assurez-vous d'avoir installé des services secrets tels que gnome-keyring, kde-wallet et keepassxc",
|
"encryption_failed_warning": "Spotube utilise le cryptage pour stocker vos données en toute sécurité. Mais cela a échoué. Il basculera donc vers un stockage non sécurisé\nSi vous utilisez Linux, assurez-vous d'avoir installé des services secrets tels que gnome-keyring, kde-wallet et KeePassXC",
|
||||||
"querying_info": "Interrogation des info...",
|
"querying_info": "Interrogation des info...",
|
||||||
"piped_api_down": "L'API Piped est hors service",
|
"piped_api_down": "L'API Piped est hors service",
|
||||||
"piped_down_error_instructions": "L'instance Piped {pipedInstance} est actuellement indisponible\n\nChangez soit l'instance, soit le 'Type d'API' pour utiliser l'API officielle de YouTube\n\nN'oubliez pas de redémarrer l'application après la modification",
|
"piped_down_error_instructions": "L'instance Piped {pipedInstance} est actuellement indisponible\n\nChangez soit l'instance, soit le 'Type d'API' pour utiliser l'API officielle de YouTube\n\nN'oubliez pas de redémarrer l'application après la modification",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "Morceaux diffusés",
|
"streamed_songs": "Morceaux diffusés",
|
||||||
"count_streams": "{count} streams",
|
"count_streams": "{count} streams",
|
||||||
"owned_by_you": "Possédé par vous",
|
"owned_by_you": "Possédé par vous",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} copié dans le presse-papier",
|
"copied_share_url_to_clipboard": "{shareUrl} copié dans le presse-papier",
|
||||||
"spotify_hipotetical_calculation": "*Cela est calculé en fonction du\npaiement par stream de Spotify de 0,003 $ à 0,005 $.\nIl s'agit d'un calcul hypothétique pour donner\nune idée de combien vous auriez\npayé aux artistes si vous aviez\nécouté leur chanson sur Spotify.",
|
"spotify_hypothetical_calculation": "*Cela est calculé en fonction du\npaiement par stream de Spotify de 0,003 $ à 0,005 $.\nIl s'agit d'un calcul hypothétique pour donner\nune idée de combien vous auriez\npayé aux artistes si vous aviez\nécouté leur chanson sur Spotify.",
|
||||||
"count_mins": "{minutes} minutes",
|
"count_minutes": "{minutes} minutes",
|
||||||
"summary_minutes": "minutes",
|
"summary_minutes": "minutes",
|
||||||
"summary_listened_to_music": "A écouté de la musique",
|
"summary_listened_to_music": "A écouté de la musique",
|
||||||
"summary_songs": "morceaux",
|
"summary_songs": "morceaux",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "मिनी प्लेयर",
|
"mini_player": "मिनी प्लेयर",
|
||||||
"slide_to_seek": "आगे या पीछे खोजने के लिए स्लाइड करें",
|
"slide_to_seek": "आगे या पीछे खोजने के लिए स्लाइड करें",
|
||||||
"shuffle_playlist": "प्लेलिस्ट शफल करें",
|
"shuffle_playlist": "प्लेलिस्ट शफल करें",
|
||||||
"unshuffle_playlist": "अनशफल प्लेलिस्ट",
|
"not_shuffle_playlist": "अनशफल प्लेलिस्ट",
|
||||||
"previous_track": "पिछला ट्रैक",
|
"previous_track": "पिछला ट्रैक",
|
||||||
"next_track": "अगला ट्रैक",
|
"next_track": "अगला ट्रैक",
|
||||||
"pause_playback": "वापसी बंद करें",
|
"pause_playback": "वापसी बंद करें",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "पहले, जाएं",
|
"first_go_to": "पहले, जाएं",
|
||||||
"login_if_not_logged_in": "और यदि आप लॉगिन नहीं हैं तो लॉगिन / साइनअप करें",
|
"login_if_not_logged_in": "और यदि आप लॉगिन नहीं हैं तो लॉगिन / साइनअप करें",
|
||||||
"step_2": "2 चरण",
|
"step_2": "2 चरण",
|
||||||
"step_2_steps": "1. जब आप लॉगिन हो जाएँ, तो F12 दबाएं या माउस राइट क्लिक> निरीक्षण करें ताकि ब्राउज़र डेवटूल्स खुलें।\n2. फिर ब्राउज़र के \"एप्लिकेशन\" टैब (Chrome, Edge, Brave आदि) या \"स्टोरेज\" टैब (Firefox, Palemoon आदि) में जाएं\n3. \"कुकीज़\" अनुभाग में जाएं फिर \"https: //accounts.spotify.com\" उप-अनुभाग में जाएं",
|
"step_2_steps": "1. जब आप लॉगिन हो जाएँ, तो F12 दबाएं या माउस राइट क्लिक> निरीक्षण करें ताकि ब्राउज़र डेवटूल्स खुलें।\n2. फिर ब्राउज़र के \"एप्लिकेशन\" टैब (Chrome, Edge, Brave आदि) या \"स्टोरेज\" टैब (Firefox, Pale Moon आदि) में जाएं\n3. \"कुकीज़\" अनुभाग में जाएं फिर \"https: //accounts.spotify.com\" उप-अनुभाग में जाएं",
|
||||||
"step_3": "स्टेप 3",
|
"step_3": "स्टेप 3",
|
||||||
"success_emoji": "सफलता🥳",
|
"success_emoji": "सफलता🥳",
|
||||||
"success_message": "अब आप अपने स्पॉटिफाई अकाउंट से सफलतापूर्वक लॉगइन हो गए हैं। अच्छा काम किया!",
|
"success_message": "अब आप अपने स्पॉटिफाई अकाउंट से सफलतापूर्वक लॉगइन हो गए हैं। अच्छा काम किया!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "जान्र जोड़ें",
|
"add_genres": "जान्र जोड़ें",
|
||||||
"country": "देश",
|
"country": "देश",
|
||||||
"number_of_tracks_generate": "उत्पन्न करने के लिए ट्रैक की संख्या",
|
"number_of_tracks_generate": "उत्पन्न करने के लिए ट्रैक की संख्या",
|
||||||
"acousticness": "ध्वनिकता",
|
"not_acoustic": "ध्वनिकता",
|
||||||
"danceability": "नृत्यता",
|
"dance_ability": "नृत्यता",
|
||||||
"energy": "ऊर्जा",
|
"energy": "ऊर्जा",
|
||||||
"instrumentalness": "आलापिकता",
|
"not_instrumental": "आलापिकता",
|
||||||
"liveness": "जीवंतता",
|
"liveness": "जीवंतता",
|
||||||
"loudness": "शोर",
|
"loudness": "शोर",
|
||||||
"speechiness": "बोलचालता",
|
"talkative": "बोलचालता",
|
||||||
"valence": "मनोदयता",
|
"valence": "मनोदयता",
|
||||||
"popularity": "लोकप्रियता",
|
"popularity": "लोकप्रियता",
|
||||||
"key": "कुंजी",
|
"key": "कुंजी",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "नवीनतम जोड़े गए के अनुसार क्रमबद्ध करें",
|
"sort_newest": "नवीनतम जोड़े गए के अनुसार क्रमबद्ध करें",
|
||||||
"sort_oldest": "सबसे पुराने जोड़े गए के अनुसार क्रमबद्ध करें",
|
"sort_oldest": "सबसे पुराने जोड़े गए के अनुसार क्रमबद्ध करें",
|
||||||
"sleep_timer": "स्लीप टाइमर",
|
"sleep_timer": "स्लीप टाइमर",
|
||||||
"mins": "{minutes} मिनट",
|
"minutes": "{minutes} मिनट",
|
||||||
"hours": "{hours} घंटे",
|
"hours": "{hours} घंटे",
|
||||||
"hour": "{hours} घंटा",
|
"hour": "{hours} घंटा",
|
||||||
"custom_hours": "कस्टम घंटे",
|
"custom_hours": "कस्टम घंटे",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "ऑडियो स्रोत",
|
"audio_source": "ऑडियो स्रोत",
|
||||||
"ok": "ठीक है",
|
"ok": "ठीक है",
|
||||||
"failed_to_encrypt": "एन्क्रिप्ट करने में विफल रहा",
|
"failed_to_encrypt": "एन्क्रिप्ट करने में विफल रहा",
|
||||||
"encryption_failed_warning": "Spotube आपके डेटा को सुरक्षित रूप से स्टोर करने के लिए एन्क्रिप्शन का उपयोग करता है। लेकिन इसमें विफल रहा। इसलिए, यह असुरक्षित स्टोरेज पर फॉलबैक करेगा\nयदि आप Linux का उपयोग कर रहे हैं, तो कृपया सुनिश्चित करें कि आपके पास gnome-keyring, kde-wallet, keepassxc आदि जैसी कोई सीक्रेट-सर्विस इंस्टॉल की गई है",
|
"encryption_failed_warning": "Spotube आपके डेटा को सुरक्षित रूप से स्टोर करने के लिए एन्क्रिप्शन का उपयोग करता है। लेकिन इसमें विफल रहा। इसलिए, यह असुरक्षित स्टोरेज पर फॉलबैक करेगा\nयदि आप Linux का उपयोग कर रहे हैं, तो कृपया सुनिश्चित करें कि आपके पास gnome-keyring, kde-wallet, KeePassXC आदि जैसी कोई सीक्रेट-सर्विस इंस्टॉल की गई है",
|
||||||
"querying_info": "जानकारी प्राप्त करना",
|
"querying_info": "जानकारी प्राप्त करना",
|
||||||
"piped_api_down": "पाइप्ड एपीआई डाउन है",
|
"piped_api_down": "पाइप्ड एपीआई डाउन है",
|
||||||
"piped_down_error_instructions": "पाइप्ड इंस्टेंस {pipedInstance} वर्तमान में डाउन है\n\nइंस्टेंस बदलें या 'एपीआई प्रकार' को आधिकृत YouTube एपीआई में बदलें\n\nपरिवर्तन के बाद ऐप को फिर से चालने की सुनिश्चित करें",
|
"piped_down_error_instructions": "पाइप्ड इंस्टेंस {pipedInstance} वर्तमान में डाउन है\n\nइंस्टेंस बदलें या 'एपीआई प्रकार' को आधिकृत YouTube एपीआई में बदलें\n\nपरिवर्तन के बाद ऐप को फिर से चालने की सुनिश्चित करें",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "उपयोगकर्ता प्रोफ़ाइल",
|
"user_profile": "उपयोगकर्ता प्रोफ़ाइल",
|
||||||
"count_plays": "{count} प्ले",
|
"count_plays": "{count} प्ले",
|
||||||
"streaming_fees_hypothetical": "*Spotify की प्रति स्ट्रीम भुगतान के आधार पर\n$0.003 से $0.005 तक गणना की गई है। यह एक काल्पनिक\nगणना है जो उपयोगकर्ता को यह जानकारी देती है कि वे कितना भुगतान\nकरते यदि वे Spotify पर गाने सुनते।",
|
"streaming_fees_hypothetical": "*Spotify की प्रति स्ट्रीम भुगतान के आधार पर\n$0.003 से $0.005 तक गणना की गई है। यह एक काल्पनिक\nगणना है जो उपयोगकर्ता को यह जानकारी देती है कि वे कितना भुगतान\nकरते यदि वे Spotify पर गाने सुनते।",
|
||||||
"count_mins": "{minutes} मिनट",
|
"count_minutes": "{minutes} मिनट",
|
||||||
"summary_minutes": "मिनट",
|
"summary_minutes": "मिनट",
|
||||||
"summary_listened_to_music": "सुनी गई संगीत",
|
"summary_listened_to_music": "सुनी गई संगीत",
|
||||||
"summary_songs": "गाने",
|
"summary_songs": "गाने",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "स्ट्रीम गरिएका गीतहरू",
|
"streamed_songs": "स्ट्रीम गरिएका गीतहरू",
|
||||||
"count_streams": "{count} स्ट्रिम",
|
"count_streams": "{count} स्ट्रिम",
|
||||||
"owned_by_you": "तपाईंले स्वामित्व गरेको",
|
"owned_by_you": "तपाईंले स्वामित्व गरेको",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} क्लिपबोर्डमा कपी गरियो",
|
"copied_share_url_to_clipboard": "{shareUrl} क्लिपबोर्डमा कपी गरियो",
|
||||||
"spotify_hipotetical_calculation": "*यो Spotify को प्रति स्ट्रीम भुगतानको आधारमा\n$0.003 देखि $0.005 को बीचमा गणना गरिएको हो। यो एक काल्पनिक\nगणना हो जसले प्रयोगकर्तालाई देखाउँछ कि उनीहरूले कति\nअर्टिस्टहरूलाई तिनीहरूका गीतहरू Spotify मा सुनेमा\nभुक्तान गर्नुपर्ने थियो।",
|
"spotify_hypothetical_calculation": "*यो Spotify को प्रति स्ट्रीम भुगतानको आधारमा\n$0.003 देखि $0.005 को बीचमा गणना गरिएको हो। यो एक काल्पनिक\nगणना हो जसले प्रयोगकर्तालाई देखाउँछ कि उनीहरूले कति\nअर्टिस्टहरूलाई तिनीहरूका गीतहरू Spotify मा सुनेमा\nभुक्तान गर्नुपर्ने थियो।",
|
||||||
"webview_not_found": "वेबव्यू नहीं मिला",
|
"webview_not_found": "वेबव्यू नहीं मिला",
|
||||||
"webview_not_found_description": "आपके डिवाइस पर वेबव्यू रनटाइम इंस्टॉल नहीं है।\nअगर इंस्टॉल है, तो सुनिश्चित करें कि यह environment PATH में है\n\nइंस्टॉल करने के बाद, ऐप को पुनः शुरू करें",
|
"webview_not_found_description": "आपके डिवाइस पर वेबव्यू रनटाइम इंस्टॉल नहीं है।\nअगर इंस्टॉल है, तो सुनिश्चित करें कि यह environment PATH में है\n\nइंस्टॉल करने के बाद, ऐप को पुनः शुरू करें",
|
||||||
"unsupported_platform": "असमर्थित प्लेटफार्म",
|
"unsupported_platform": "असमर्थित प्लेटफार्म",
|
||||||
|
@ -91,7 +91,7 @@
|
|||||||
"mini_player": "Pemutar Mini",
|
"mini_player": "Pemutar Mini",
|
||||||
"slide_to_seek": "Geser untuk maju atau mundur",
|
"slide_to_seek": "Geser untuk maju atau mundur",
|
||||||
"shuffle_playlist": "Acak daftar putar",
|
"shuffle_playlist": "Acak daftar putar",
|
||||||
"unshuffle_playlist": "Batalkan pengacakan daftar putar",
|
"not_shuffle_playlist": "Batalkan pengacakan daftar putar",
|
||||||
"previous_track": "Lagu sebelumnya",
|
"previous_track": "Lagu sebelumnya",
|
||||||
"next_track": "Lagu berikutnya",
|
"next_track": "Lagu berikutnya",
|
||||||
"pause_playback": "Jeda Pemutaran",
|
"pause_playback": "Jeda Pemutaran",
|
||||||
@ -176,7 +176,7 @@
|
|||||||
"first_go_to": "Pertama, Pergi ke",
|
"first_go_to": "Pertama, Pergi ke",
|
||||||
"login_if_not_logged_in": "dan Masuk/Daftar jika Anda belum masuk",
|
"login_if_not_logged_in": "dan Masuk/Daftar jika Anda belum masuk",
|
||||||
"step_2": "Langkah 2",
|
"step_2": "Langkah 2",
|
||||||
"step_2_steps": "1. Setelah Anda masuk, tekan F12 atau Klik Kanan Mouse > Buka Browser Devtools.\n2. Lalu buka Tab \"Aplikasi\" (Chrome, Edge, Brave, dll.) atau Tab \"Penyimpanan\" (Firefox, Palemoon, dll.)\n3. Buka bagian \"Cookie\" lalu subbagian \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Setelah Anda masuk, tekan F12 atau Klik Kanan Mouse > Buka Browser Devtools.\n2. Lalu buka Tab \"Aplikasi\" (Chrome, Edge, Brave, dll.) atau Tab \"Penyimpanan\" (Firefox, Pale Moon, dll.)\n3. Buka bagian \"Cookie\" lalu subbagian \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Langkah 3",
|
"step_3": "Langkah 3",
|
||||||
"step_3_steps": "Salin nilai Cookie \"sp_dc\" ",
|
"step_3_steps": "Salin nilai Cookie \"sp_dc\" ",
|
||||||
"success_emoji": "Berhasil🥳",
|
"success_emoji": "Berhasil🥳",
|
||||||
@ -199,13 +199,13 @@
|
|||||||
"add_genres": "Tambah Genre",
|
"add_genres": "Tambah Genre",
|
||||||
"country": "Negara",
|
"country": "Negara",
|
||||||
"number_of_tracks_generate": "Jumlah trek yang akan dihasilkan",
|
"number_of_tracks_generate": "Jumlah trek yang akan dihasilkan",
|
||||||
"acousticness": "Akustik",
|
"not_acoustic": "Akustik",
|
||||||
"danceability": "Menari",
|
"dance_ability": "Menari",
|
||||||
"energy": "Energi",
|
"energy": "Energi",
|
||||||
"instrumentalness": "Instrumentalitas",
|
"not_instrumental": "Instrumentalitas",
|
||||||
"liveness": "Kehidupan",
|
"liveness": "Kehidupan",
|
||||||
"loudness": "Kekerasan",
|
"loudness": "Kekerasan",
|
||||||
"speechiness": "Berbicara",
|
"talkative": "Berbicara",
|
||||||
"valence": "Valensi",
|
"valence": "Valensi",
|
||||||
"popularity": "Popularitas",
|
"popularity": "Popularitas",
|
||||||
"key": "Kunci",
|
"key": "Kunci",
|
||||||
@ -244,7 +244,7 @@
|
|||||||
"sort_newest": "Urutkan yang baru ditambah",
|
"sort_newest": "Urutkan yang baru ditambah",
|
||||||
"sort_oldest": "Urutkan yang paling lama ditambah",
|
"sort_oldest": "Urutkan yang paling lama ditambah",
|
||||||
"sleep_timer": "Pengatur Waktu Tidur",
|
"sleep_timer": "Pengatur Waktu Tidur",
|
||||||
"mins": "{minutes} Menit",
|
"minutes": "{minutes} Menit",
|
||||||
"hours": "{hours} Jam",
|
"hours": "{hours} Jam",
|
||||||
"hour": "{hours} Jam",
|
"hour": "{hours} Jam",
|
||||||
"custom_hours": "Jam Kostum",
|
"custom_hours": "Jam Kostum",
|
||||||
@ -255,7 +255,7 @@
|
|||||||
"audio_source": "Sumber Suara",
|
"audio_source": "Sumber Suara",
|
||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"failed_to_encrypt": "Gagal mengenkripsi",
|
"failed_to_encrypt": "Gagal mengenkripsi",
|
||||||
"encryption_failed_warning": "Spotube menggunakan enkripsi untuk menyimpan data Anda dengan aman. Namun gagal melakukannya. Jadi itu akan kembali ke penyimpanan yang tidak aman\nJika Anda menggunakan linux, pastikan Anda telah menginstal layanan rahasia (gnome-keyring, kde-wallet, keepassxc, dll)",
|
"encryption_failed_warning": "Spotube menggunakan enkripsi untuk menyimpan data Anda dengan aman. Namun gagal melakukannya. Jadi itu akan kembali ke penyimpanan yang tidak aman\nJika Anda menggunakan linux, pastikan Anda telah menginstal layanan rahasia (gnome-keyring, kde-wallet, KeePassXC, dll)",
|
||||||
"querying_info": "Mencari informasi...",
|
"querying_info": "Mencari informasi...",
|
||||||
"piped_api_down": "Piped API tidak aktif",
|
"piped_api_down": "Piped API tidak aktif",
|
||||||
"piped_down_error_instructions": "Piped Instance {pipedInstance} saat ini tidak aktif\n\nUbah instance atau ubah 'jenis API' menjadi API YouTube resmi\n\nPastikan untuk memulai ulang aplikasi setelah perubahan",
|
"piped_down_error_instructions": "Piped Instance {pipedInstance} saat ini tidak aktif\n\nUbah instance atau ubah 'jenis API' menjadi API YouTube resmi\n\nPastikan untuk memulai ulang aplikasi setelah perubahan",
|
||||||
@ -370,9 +370,9 @@
|
|||||||
"streamed_songs": "Lagu yang disiarkan",
|
"streamed_songs": "Lagu yang disiarkan",
|
||||||
"count_streams": "{count} streams",
|
"count_streams": "{count} streams",
|
||||||
"owned_by_you": "Dimiliki oleh Anda",
|
"owned_by_you": "Dimiliki oleh Anda",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} disalin ke clipboard",
|
"copied_share_url_to_clipboard": "{shareUrl} disalin ke clipboard",
|
||||||
"spotify_hipotetical_calculation": "*Ini dihitung berdasarkan pembayaran\nper stream Spotify dari $0,003 hingga $0,005.\nIni adalah perhitungan hipotetis untuk memberi\npengguna gambaran tentang berapa banyak\nmereka akan membayar kepada artis jika\nmereka mendengarkan lagu mereka di Spotify.",
|
"spotify_hypothetical_calculation": "*Ini dihitung berdasarkan pembayaran\nper stream Spotify dari $0,003 hingga $0,005.\nIni adalah perhitungan hipotetis untuk memberi\npengguna gambaran tentang berapa banyak\nmereka akan membayar kepada artis jika\nmereka mendengarkan lagu mereka di Spotify.",
|
||||||
"count_mins": "{minutes} menit",
|
"count_minutes": "{minutes} menit",
|
||||||
"summary_minutes": "menit",
|
"summary_minutes": "menit",
|
||||||
"summary_listened_to_music": "Mendengarkan musik",
|
"summary_listened_to_music": "Mendengarkan musik",
|
||||||
"summary_songs": "lagu",
|
"summary_songs": "lagu",
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
"artists": "Artisti",
|
"artists": "Artisti",
|
||||||
"albums": "Album",
|
"albums": "Album",
|
||||||
"tracks": "Tracce",
|
"tracks": "Tracce",
|
||||||
"downloads": "Downloads",
|
"downloads": "Scaricati",
|
||||||
"filter_playlists": "Filtra le tue playlist...",
|
"filter_playlists": "Filtra le tue playlist...",
|
||||||
"liked_tracks": "Tracce piaciute",
|
"liked_tracks": "Tracce piaciute",
|
||||||
"liked_tracks_description": "Tutte le tracce piaciute",
|
"liked_tracks_description": "Tutte le tracce piaciute",
|
||||||
@ -90,12 +90,12 @@
|
|||||||
"mini_player": "Mini Riproduttore",
|
"mini_player": "Mini Riproduttore",
|
||||||
"slide_to_seek": "Scorri per cercare avanti o indietro",
|
"slide_to_seek": "Scorri per cercare avanti o indietro",
|
||||||
"shuffle_playlist": "Playlist casuale",
|
"shuffle_playlist": "Playlist casuale",
|
||||||
"unshuffle_playlist": "Ordina playlist",
|
"not_shuffle_playlist": "Ordina playlist",
|
||||||
"previous_track": "Traccia precedente",
|
"previous_track": "Traccia precedente",
|
||||||
"next_track": "Traccia successiva",
|
"next_track": "Traccia successiva",
|
||||||
"pause_playback": "Pausa Playback",
|
"pause_playback": "Pausa Playback",
|
||||||
"resume_playback": "Riprendi Playback",
|
"resume_playback": "Riprendi Playback",
|
||||||
"loop_track": "Cicla traccia",
|
"loop_track": "Itera traccia",
|
||||||
"repeat_playlist": "Ripeti playlist",
|
"repeat_playlist": "Ripeti playlist",
|
||||||
"queue": "Coda",
|
"queue": "Coda",
|
||||||
"alternative_track_sources": "Sorgenti traccia alternative",
|
"alternative_track_sources": "Sorgenti traccia alternative",
|
||||||
@ -126,8 +126,8 @@
|
|||||||
"dark": "Scuro",
|
"dark": "Scuro",
|
||||||
"light": "Chiaro",
|
"light": "Chiaro",
|
||||||
"system": "Sistema",
|
"system": "Sistema",
|
||||||
"accent_color": "Colore accento",
|
"accent_color": "Colore principale",
|
||||||
"sync_album_color": "Syncronizza colore album",
|
"sync_album_color": "Sincronizza colore album",
|
||||||
"sync_album_color_description": "Usa il colore dominante della copertina dell'album come colore accento",
|
"sync_album_color_description": "Usa il colore dominante della copertina dell'album come colore accento",
|
||||||
"playback": "Riproduzione",
|
"playback": "Riproduzione",
|
||||||
"audio_quality": "Qualità Audio",
|
"audio_quality": "Qualità Audio",
|
||||||
@ -149,7 +149,7 @@
|
|||||||
"about_spotube": "A proposito di Spotube",
|
"about_spotube": "A proposito di Spotube",
|
||||||
"blacklist": "Blacklist",
|
"blacklist": "Blacklist",
|
||||||
"please_sponsor": "Per favore sponsorizza/dona",
|
"please_sponsor": "Per favore sponsorizza/dona",
|
||||||
"spotube_description": "Spotube, un client spotify gratis per tutti, multipiattaforma e leggero",
|
"spotube_description": "Spotube, un client spotify gratis per tutti, multi-piattaforma e leggero",
|
||||||
"version": "Versione",
|
"version": "Versione",
|
||||||
"build_number": "Numero Build",
|
"build_number": "Numero Build",
|
||||||
"founder": "Fondatore",
|
"founder": "Fondatore",
|
||||||
@ -175,15 +175,15 @@
|
|||||||
"first_go_to": "Prim, vai a",
|
"first_go_to": "Prim, vai a",
|
||||||
"login_if_not_logged_in": "ed effettua il login o iscrizione se non sei già acceduto",
|
"login_if_not_logged_in": "ed effettua il login o iscrizione se non sei già acceduto",
|
||||||
"step_2": "Passo 2",
|
"step_2": "Passo 2",
|
||||||
"step_2_steps": "1. Quando sei acceduto premi F12 o premi il tasto destro del Mouse > Ispeziona per aprire gli strumenti di sviluppo del browser.\n2. Vai quindi nel tab \"Applicazione\" (Chrome, Edge, Brave etc..) o tab \"Archiviazione\" (Firefox, Palemoon etc..)\n3. Vai nella sezione \"Cookies\" quindi nella sezione \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Quando sei acceduto premi F12 o premi il tasto destro del Mouse > Ispeziona per aprire gli strumenti di sviluppo del browser.\n2. Vai quindi nel tab \"Applicazione\" (Chrome, Edge, Brave etc..) o tab \"Archiviazione\" (Firefox, Pale Moon etc..)\n3. Vai nella sezione \"Cookies\" quindi nella sezione \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Passo 3",
|
"step_3": "Passo 3",
|
||||||
"success_emoji": "Successo🥳",
|
"success_emoji": "Successo🥳",
|
||||||
"success_message": "Ora hai correttamente effettuato il login al tuo account Spotify. Bel lavoro, amico!",
|
"success_message": "Ora hai correttamente effettuato il login al tuo account Spotify. Bel lavoro, amico!",
|
||||||
"step_4": "Passo 4",
|
"step_4": "Passo 4",
|
||||||
"something_went_wrong": "Qualcosa è andato storto",
|
"something_went_wrong": "Qualcosa è andato storto",
|
||||||
"piped_instance": "Istanza Server Piped",
|
"piped_instance": "Istanza Server Piped",
|
||||||
"piped_description": "L'istanza server Piped da usare per il match della tracccia",
|
"piped_description": "L'istanza server Piped da usare per il match della traccia",
|
||||||
"piped_warning": "Alcune di queste non funzioneranno benen. Usa quindi a tuo rischio",
|
"piped_warning": "Alcune di queste non funzioneranno bene. Usa quindi a tuo rischio",
|
||||||
"generate_playlist": "Genera Playlist",
|
"generate_playlist": "Genera Playlist",
|
||||||
"track_exists": "La traccia {track} esiste già",
|
"track_exists": "La traccia {track} esiste già",
|
||||||
"replace_downloaded_tracks": "Sostituisci tutte le tracce scaricate",
|
"replace_downloaded_tracks": "Sostituisci tutte le tracce scaricate",
|
||||||
@ -195,14 +195,14 @@
|
|||||||
"select_genres": "Seleziona Generi",
|
"select_genres": "Seleziona Generi",
|
||||||
"add_genres": "Aggiungi Generi",
|
"add_genres": "Aggiungi Generi",
|
||||||
"country": "Paese",
|
"country": "Paese",
|
||||||
"number_of_tracks_generate": "Nnumero di tracce da generare",
|
"number_of_tracks_generate": "Numero di tracce da generare",
|
||||||
"acousticness": "Acustica",
|
"not_acoustic": "Acustica",
|
||||||
"danceability": "Ballabilità",
|
"dance_ability": "Ballabile",
|
||||||
"energy": "Energia",
|
"energy": "Energia",
|
||||||
"instrumentalness": "Strumentalità",
|
"not_instrumental": "Strumentalità",
|
||||||
"liveness": "Vitalità",
|
"liveness": "Vitalità",
|
||||||
"loudness": "Sonorità",
|
"loudness": "Sonorità",
|
||||||
"speechiness": "Loquacità",
|
"talkative": "Loquacità",
|
||||||
"valence": "Valenza",
|
"valence": "Valenza",
|
||||||
"popularity": "Popolarità",
|
"popularity": "Popolarità",
|
||||||
"key": "Chiave",
|
"key": "Chiave",
|
||||||
@ -222,11 +222,11 @@
|
|||||||
"are_you_sure": "Sei certo?",
|
"are_you_sure": "Sei certo?",
|
||||||
"generating_playlist": "Generazione delle tue playlist custom...",
|
"generating_playlist": "Generazione delle tue playlist custom...",
|
||||||
"selected_count_tracks": "{count} tracce selezionate",
|
"selected_count_tracks": "{count} tracce selezionate",
|
||||||
"download_warning": "Se scarichi tutte le Tracce in massa stai chiaramente piratando Musica e causando un danno alla società creativa della Musica. Spero che tu sia cosciente di questo. Cerca di rispettare e supportare sempre il duro lavoro degli Artisti",
|
"download_warning": "Se scarichi tutte le Tracce in massa stai chiaramente scaricando illegalmente Musica e causando un danno alla società creativa della Musica. Spero che tu sia cosciente di questo. Cerca di rispettare e supportare sempre il duro lavoro degli Artisti",
|
||||||
"download_ip_ban_warning": "A proposito, il tuo IP può essere bloccato da YouTube per il numero di richieste di download eccessive rispetto la norma. Il blocco IP significa che non puoi usare YoutTube (anche hai effettuato l'accesso) per almeno 2-3 mesi dal dispositivo con questo IP. Spotube non ha responsabilità se questo dovesse accadere",
|
"download_ip_ban_warning": "A proposito, il tuo IP può essere bloccato da YouTube per il numero di richieste di download eccessive rispetto la norma. Il blocco IP significa che non puoi usare YouTube (anche hai effettuato l'accesso) per almeno 2-3 mesi dal dispositivo con questo IP. Spotube non ha responsabilità se questo dovesse accadere",
|
||||||
"by_clicking_accept_terms": "Cliccando su 'accetta' concordi con i seguenti termini:",
|
"by_clicking_accept_terms": "Cliccando su 'accetta' concordi con i seguenti termini:",
|
||||||
"download_agreement_1": "So che sto piratando Musica. Sono cattivo",
|
"download_agreement_1": "So che sto scaricando illegalmente Musica. Sono cattivo",
|
||||||
"download_agreement_2": "Supporterò l'Artista come potrò e sto facendo questo solo perchè non ho denaro per acquistare il suo prodotto dell'ingegno",
|
"download_agreement_2": "Supporterò l'Artista come potrò e sto facendo questo solo perché non ho denaro per acquistare il suo prodotto dell'ingegno",
|
||||||
"download_agreement_3": "Sono completamente cosciente che il mio IP può essere bloccato da YouTube & non riterrò responsabili Spotube o i suoi autori/contributori per ogni inconveniente causato dalla mia azione corrente",
|
"download_agreement_3": "Sono completamente cosciente che il mio IP può essere bloccato da YouTube & non riterrò responsabili Spotube o i suoi autori/contributori per ogni inconveniente causato dalla mia azione corrente",
|
||||||
"decline": "Declino",
|
"decline": "Declino",
|
||||||
"accept": "Accetto",
|
"accept": "Accetto",
|
||||||
@ -241,7 +241,7 @@
|
|||||||
"sort_newest": "Ordina per nuovi aggiunti",
|
"sort_newest": "Ordina per nuovi aggiunti",
|
||||||
"sort_oldest": "Ordina per aggiunta più vecchia",
|
"sort_oldest": "Ordina per aggiunta più vecchia",
|
||||||
"sleep_timer": "Timer Dormire",
|
"sleep_timer": "Timer Dormire",
|
||||||
"mins": "{minutes} Minuti",
|
"minutes": "{minutes} Minuti",
|
||||||
"hours": "{hours} Ore",
|
"hours": "{hours} Ore",
|
||||||
"hour": "{hours} Ora",
|
"hour": "{hours} Ora",
|
||||||
"custom_hours": "Orari Personalizzati",
|
"custom_hours": "Orari Personalizzati",
|
||||||
@ -252,7 +252,7 @@
|
|||||||
"youtube_api_type": "Tipo API",
|
"youtube_api_type": "Tipo API",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"failed_to_encrypt": "Criptazione fallita",
|
"failed_to_encrypt": "Criptazione fallita",
|
||||||
"encryption_failed_warning": "Spotube usa la criptazione per memorizzare in modo sicuro i dati. Ma ha fallito a farlo. Passerà quindi in ripiego alla memorizzazione non siscura\nSe stai usando Linux assicurati di avere un servizio di segretezza installato (gnome-keyring, kde-wallet, keepassxc etc)",
|
"encryption_failed_warning": "Spotube usa la criptazione per memorizzare in modo sicuro i dati. Ma ha fallito a farlo. Passerà quindi in ripiego alla memorizzazione non sicura\n Se stai usando Linux assicurati di avere un servizio di segretezza installato (gnome-keyring, kde-wallet, KeePassXC etc)",
|
||||||
"querying_info": "Richiesta informazioni...",
|
"querying_info": "Richiesta informazioni...",
|
||||||
"piped_api_down": "Le Piped API non funzionano",
|
"piped_api_down": "Le Piped API non funzionano",
|
||||||
"piped_down_error_instructions": "L'istanza di Piped {pipedInstance} è correntemente offline\n\nCambia istanza o cambia 'Tipo API' alle API ufficiali YouTube\n\nAssicurati di riavviare l'app dopo il cambio",
|
"piped_down_error_instructions": "L'istanza di Piped {pipedInstance} è correntemente offline\n\nCambia istanza o cambia 'Tipo API' alle API ufficiali YouTube\n\nAssicurati di riavviare l'app dopo il cambio",
|
||||||
@ -271,8 +271,8 @@
|
|||||||
"streaming_music_codec": "Codec musicale streaming",
|
"streaming_music_codec": "Codec musicale streaming",
|
||||||
"login_with_lastfm": "Accesso a Last.fm",
|
"login_with_lastfm": "Accesso a Last.fm",
|
||||||
"connect": "Connetti",
|
"connect": "Connetti",
|
||||||
"disconnect_lastfm": "Disconnetti Last.fm",
|
"disconnect_lastfm": "Scollega Last.fm",
|
||||||
"disconnect": "Disconnetti",
|
"disconnect": "Scollega",
|
||||||
"username": "Nome utente",
|
"username": "Nome utente",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
"login": "Accesso",
|
"login": "Accesso",
|
||||||
@ -371,9 +371,9 @@
|
|||||||
"streamed_songs": "Brani in streaming",
|
"streamed_songs": "Brani in streaming",
|
||||||
"count_streams": "{count} streaming",
|
"count_streams": "{count} streaming",
|
||||||
"owned_by_you": "Di tua proprietà",
|
"owned_by_you": "Di tua proprietà",
|
||||||
"copied_shareurl_to_clipboard": "Copiato {shareUrl} negli appunti",
|
"copied_share_url_to_clipboard": "Copiato {shareUrl} negli appunti",
|
||||||
"spotify_hipotetical_calculation": "*Questo è calcolato in base al pagamento per streaming di Spotify\nche va da $0.003 a $0.005. Questo è un calcolo ipotetico\nper dare all'utente un'idea di quanto avrebbe pagato agli artisti se avesse ascoltato\ne loro canzoni su Spotify.",
|
"spotify_hypothetical_calculation": "*Questo è calcolato in base al pagamento per streaming di Spotify\nche va da $0.003 a $0.005. Questo è un calcolo ipotetico\nper dare all'utente un'idea di quanto avrebbe pagato agli artisti se avesse ascoltato\ne loro canzoni su Spotify.",
|
||||||
"count_mins": "{minutes} min",
|
"count_minutes": "{minutes} min",
|
||||||
"summary_minutes": "minuti",
|
"summary_minutes": "minuti",
|
||||||
"summary_listened_to_music": "Musica ascoltata",
|
"summary_listened_to_music": "Musica ascoltata",
|
||||||
"summary_songs": "brani",
|
"summary_songs": "brani",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "ミニプレイヤー",
|
"mini_player": "ミニプレイヤー",
|
||||||
"slide_to_seek": "前後にスライドしてシーク",
|
"slide_to_seek": "前後にスライドしてシーク",
|
||||||
"shuffle_playlist": "再生リストをシャッフル",
|
"shuffle_playlist": "再生リストをシャッフル",
|
||||||
"unshuffle_playlist": "再生リストのシャッフル解除",
|
"not_shuffle_playlist": "再生リストのシャッフル解除",
|
||||||
"previous_track": "前の曲",
|
"previous_track": "前の曲",
|
||||||
"next_track": "次の曲",
|
"next_track": "次の曲",
|
||||||
"pause_playback": "再生を停止",
|
"pause_playback": "再生を停止",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "最初にここを開き",
|
"first_go_to": "最初にここを開き",
|
||||||
"login_if_not_logged_in": "、ログインしてないならログインまたは登録します",
|
"login_if_not_logged_in": "、ログインしてないならログインまたは登録します",
|
||||||
"step_2": "ステップ 2",
|
"step_2": "ステップ 2",
|
||||||
"step_2_steps": "1. ログインしたら、F12を押すか、マウス右クリック > 調査(検証)でブラウザの開発者ツール (devtools) を開きます。\n2. アプリケーション (Application) タブ (Chrome, Edge, Brave など) またはストレージタブ (Firefox, Palemoon など)\n3. Cookies 欄を選択し、https://accounts.spotify.com の枝を選びます",
|
"step_2_steps": "1. ログインしたら、F12を押すか、マウス右クリック > 調査(検証)でブラウザの開発者ツール (devtools) を開きます。\n2. アプリケーション (Application) タブ (Chrome, Edge, Brave など) またはストレージタブ (Firefox, Pale Moon など)\n3. Cookies 欄を選択し、https://accounts.spotify.com の枝を選びます",
|
||||||
"step_3": "ステップ 3",
|
"step_3": "ステップ 3",
|
||||||
"success_emoji": "成功🥳",
|
"success_emoji": "成功🥳",
|
||||||
"success_message": "アカウントへのログインに成功しました。よくできました!",
|
"success_message": "アカウントへのログインに成功しました。よくできました!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "ジャンルを追加",
|
"add_genres": "ジャンルを追加",
|
||||||
"country": "国",
|
"country": "国",
|
||||||
"number_of_tracks_generate": "生成する曲数",
|
"number_of_tracks_generate": "生成する曲数",
|
||||||
"acousticness": "アコースティック感",
|
"not_acoustic": "アコースティック感",
|
||||||
"danceability": "ダンス感",
|
"dance_ability": "ダンス感",
|
||||||
"energy": "エネルギー",
|
"energy": "エネルギー",
|
||||||
"instrumentalness": "インストゥルメンタル",
|
"not_instrumental": "インストゥルメンタル",
|
||||||
"liveness": "ライブ感",
|
"liveness": "ライブ感",
|
||||||
"loudness": "ラウドネス",
|
"loudness": "ラウドネス",
|
||||||
"speechiness": "会話感",
|
"talkative": "会話感",
|
||||||
"valence": "多幸性",
|
"valence": "多幸性",
|
||||||
"popularity": "人気度",
|
"popularity": "人気度",
|
||||||
"key": "キー",
|
"key": "キー",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "追加日の新しい順に並び替え",
|
"sort_newest": "追加日の新しい順に並び替え",
|
||||||
"sort_oldest": "追加日の古い順に並び替え",
|
"sort_oldest": "追加日の古い順に並び替え",
|
||||||
"sleep_timer": "スリープタイマー",
|
"sleep_timer": "スリープタイマー",
|
||||||
"mins": "{minutes} 分",
|
"minutes": "{minutes} 分",
|
||||||
"hours": "{hours} 時間",
|
"hours": "{hours} 時間",
|
||||||
"hour": "{hours} 時間",
|
"hour": "{hours} 時間",
|
||||||
"custom_hours": "時間を指定",
|
"custom_hours": "時間を指定",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "音声ソース",
|
"audio_source": "音声ソース",
|
||||||
"ok": "分かりました",
|
"ok": "分かりました",
|
||||||
"failed_to_encrypt": "暗号化に失敗しました",
|
"failed_to_encrypt": "暗号化に失敗しました",
|
||||||
"encryption_failed_warning": "Spotubeはデータを安全に保存するために暗号化を使用しています。しかし、失敗しました。したがって、安全でないストレージにフォールバックします\nLinuxを使用している場合は、gnome-keyring、kde-wallet、keepassxcなどのシークレットサービスがインストールされていることを確認してください",
|
"encryption_failed_warning": "Spotubeはデータを安全に保存するために暗号化を使用しています。しかし、失敗しました。したがって、安全でないストレージにフォールバックします\nLinuxを使用している場合は、gnome-keyring、kde-wallet、KeePassXCなどのシークレットサービスがインストールされていることを確認してください",
|
||||||
"querying_info": "情報を取得中...",
|
"querying_info": "情報を取得中...",
|
||||||
"piped_api_down": "Piped APIがダウンしています",
|
"piped_api_down": "Piped APIがダウンしています",
|
||||||
"piped_down_error_instructions": "Pipedインスタンス{pipedInstance}は現在ダウンしています\n\nインスタンスを変更するか、'APIタイプ'を公式のYouTube APIに変更してください\n\n変更後にアプリを再起動してください",
|
"piped_down_error_instructions": "Pipedインスタンス{pipedInstance}は現在ダウンしています\n\nインスタンスを変更するか、'APIタイプ'を公式のYouTube APIに変更してください\n\n変更後にアプリを再起動してください",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "ユーザープロフィール",
|
"user_profile": "ユーザープロフィール",
|
||||||
"count_plays": "{count} 回再生",
|
"count_plays": "{count} 回再生",
|
||||||
"streaming_fees_hypothetical": "*これは Spotify のストリームあたりの支払い\nが $0.003 から $0.005 であると仮定して計算されています。\nこれは、Spotify でその曲を聴いた場合にアーティストにいくら支払ったかの\n洞察を得るための仮定の計算です。",
|
"streaming_fees_hypothetical": "*これは Spotify のストリームあたりの支払い\nが $0.003 から $0.005 であると仮定して計算されています。\nこれは、Spotify でその曲を聴いた場合にアーティストにいくら支払ったかの\n洞察を得るための仮定の計算です。",
|
||||||
"count_mins": "{minutes} 分",
|
"count_minutes": "{minutes} 分",
|
||||||
"summary_minutes": "分",
|
"summary_minutes": "分",
|
||||||
"summary_listened_to_music": "音楽を聴いた",
|
"summary_listened_to_music": "音楽を聴いた",
|
||||||
"summary_songs": "曲",
|
"summary_songs": "曲",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "ストリーミングされた曲",
|
"streamed_songs": "ストリーミングされた曲",
|
||||||
"count_streams": "{count} 回のストリーム",
|
"count_streams": "{count} 回のストリーム",
|
||||||
"owned_by_you": "あなたが所有",
|
"owned_by_you": "あなたが所有",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} をクリップボードにコピーしました",
|
"copied_share_url_to_clipboard": "{shareUrl} をクリップボードにコピーしました",
|
||||||
"spotify_hipotetical_calculation": "*これは、Spotifyのストリームごとの支払い\nが $0.003 から $0.005 の範囲で計算されています。これは仮想的な\n計算で、Spotify で曲を聴いた場合に、アーティストに\nどれくらい支払ったかをユーザーに示すためのものです。",
|
"spotify_hypothetical_calculation": "*これは、Spotifyのストリームごとの支払い\nが $0.003 から $0.005 の範囲で計算されています。これは仮想的な\n計算で、Spotify で曲を聴いた場合に、アーティストに\nどれくらい支払ったかをユーザーに示すためのものです。",
|
||||||
"webview_not_found": "Webviewが見つかりません",
|
"webview_not_found": "Webviewが見つかりません",
|
||||||
"webview_not_found_description": "デバイスにWebviewランタイムがインストールされていません。\nインストールされている場合は、environment PATHにあることを確認してください\n\nインストール後、アプリを再起動してください",
|
"webview_not_found_description": "デバイスにWebviewランタイムがインストールされていません。\nインストールされている場合は、environment PATHにあることを確認してください\n\nインストール後、アプリを再起動してください",
|
||||||
"unsupported_platform": "サポートされていないプラットフォーム",
|
"unsupported_platform": "サポートされていないプラットフォーム",
|
||||||
|
@ -91,7 +91,7 @@
|
|||||||
"mini_player": "მინი დამკვრელი",
|
"mini_player": "მინი დამკვრელი",
|
||||||
"slide_to_seek": "გადახვევისთვის გაასრიალეთ წინ ან უკან",
|
"slide_to_seek": "გადახვევისთვის გაასრიალეთ წინ ან უკან",
|
||||||
"shuffle_playlist": "ფლეილისტის არევა",
|
"shuffle_playlist": "ფლეილისტის არევა",
|
||||||
"unshuffle_playlist": "ფლეილისტის დალაგება",
|
"not_shuffle_playlist": "ფლეილისტის დალაგება",
|
||||||
"previous_track": "წინა ტრეკი",
|
"previous_track": "წინა ტრეკი",
|
||||||
"next_track": "შემდეგი ტრეკი",
|
"next_track": "შემდეგი ტრეკი",
|
||||||
"pause_playback": "დაკვრის გაჩერება",
|
"pause_playback": "დაკვრის გაჩერება",
|
||||||
@ -176,7 +176,7 @@
|
|||||||
"first_go_to": "პირველი, გადადით",
|
"first_go_to": "პირველი, გადადით",
|
||||||
"login_if_not_logged_in": "და შესვლა/რეგისტრაცია, თუ არ ხართ შესული",
|
"login_if_not_logged_in": "და შესვლა/რეგისტრაცია, თუ არ ხართ შესული",
|
||||||
"step_2": "ნაბიჯი 2",
|
"step_2": "ნაბიჯი 2",
|
||||||
"step_2_steps": "1. როცა შეხვალთ, დააჭირეთ F12-ს ან მაუსის მარჯვენა ღილაკს > Inspect to Open the Browser devtools.\n2. შემდეგ გახსენით \"Application\" განყოფილება (Chrome, Edge, Brave etc..) ან \"Storage\" განყოფილება (Firefox, Palemoon etc..)\n3. შედით \"Cookies\" სექციაში და შემდეგ \"https://accounts.spotify.com\" სუბსექციაში",
|
"step_2_steps": "1. როცა შეხვალთ, დააჭირეთ F12-ს ან მაუსის მარჯვენა ღილაკს > Inspect to Open the Browser devtools.\n2. შემდეგ გახსენით \"Application\" განყოფილება (Chrome, Edge, Brave etc..) ან \"Storage\" განყოფილება (Firefox, Pale Moon etc..)\n3. შედით \"Cookies\" სექციაში და შემდეგ \"https://accounts.spotify.com\" სუბსექციაში",
|
||||||
"step_3": "ნაბიჯი 3",
|
"step_3": "ნაბიჯი 3",
|
||||||
"step_3_steps": "დააკოპირეთ \"sp_dc\" ქუქი-ფაილის მნიშვნელობა",
|
"step_3_steps": "დააკოპირეთ \"sp_dc\" ქუქი-ფაილის მნიშვნელობა",
|
||||||
"success_emoji": "წარმატება🥳",
|
"success_emoji": "წარმატება🥳",
|
||||||
@ -199,13 +199,13 @@
|
|||||||
"add_genres": "ჟანრების დამატება",
|
"add_genres": "ჟანრების დამატება",
|
||||||
"country": "ქვეყანა",
|
"country": "ქვეყანა",
|
||||||
"number_of_tracks_generate": "დასაგენერირებელი ტრეკების რაოდენობა",
|
"number_of_tracks_generate": "დასაგენერირებელი ტრეკების რაოდენობა",
|
||||||
"acousticness": "Acousticness",
|
"not_acoustic": "not_acoustic",
|
||||||
"danceability": "Danceability",
|
"dance_ability": "dance_ability",
|
||||||
"energy": "Energy",
|
"energy": "Energy",
|
||||||
"instrumentalness": "Instrumentalness",
|
"not_instrumental": "not_instrumental",
|
||||||
"liveness": "Liveness",
|
"liveness": "Liveness",
|
||||||
"loudness": "Loudness",
|
"loudness": "Loudness",
|
||||||
"speechiness": "Speechiness",
|
"talkative": "talkative",
|
||||||
"valence": "Valence",
|
"valence": "Valence",
|
||||||
"popularity": "Popularity",
|
"popularity": "Popularity",
|
||||||
"key": "Key",
|
"key": "Key",
|
||||||
@ -244,7 +244,7 @@
|
|||||||
"sort_newest": "ფალაგება სიახლის მიხედიტ",
|
"sort_newest": "ფალაგება სიახლის მიხედიტ",
|
||||||
"sort_oldest": "დალაგება სიძველის მიხედვით",
|
"sort_oldest": "დალაგება სიძველის მიხედვით",
|
||||||
"sleep_timer": "ძილის ტაიმერი",
|
"sleep_timer": "ძილის ტაიმერი",
|
||||||
"mins": "{minutes} წუთი",
|
"minutes": "{minutes} წუთი",
|
||||||
"hours": "{hours} საათი",
|
"hours": "{hours} საათი",
|
||||||
"hour": "{hours} საათი",
|
"hour": "{hours} საათი",
|
||||||
"custom_hours": "მორგებული საათები",
|
"custom_hours": "მორგებული საათები",
|
||||||
@ -255,7 +255,7 @@
|
|||||||
"audio_source": "აუდიოს წყარო",
|
"audio_source": "აუდიოს წყარო",
|
||||||
"ok": "ოკ",
|
"ok": "ოკ",
|
||||||
"failed_to_encrypt": "დაშიფვრა ვერ მოხერხდა",
|
"failed_to_encrypt": "დაშიფვრა ვერ მოხერხდა",
|
||||||
"encryption_failed_warning": "Spotube uses encryption to securely store your data. But failed to do so. So it'll fallback to insecure storage\nIf you're using linux, please make sure you've any secret-service (gnome-keyring, kde-wallet, keepassxc etc) installed",
|
"encryption_failed_warning": "Spotube uses encryption to securely store your data. But failed to do so. So it'll fallback to insecure storage\nIf you're using linux, please make sure you've any secret-service (gnome-keyring, kde-wallet, KeePassXC etc) installed",
|
||||||
"querying_info": "Querying info...",
|
"querying_info": "Querying info...",
|
||||||
"piped_api_down": "Piped API is down",
|
"piped_api_down": "Piped API is down",
|
||||||
"piped_down_error_instructions": "The Piped instance {pipedInstance} is currently down\n\nEither change the instance or change the 'API type' to official YouTube API\n\nMake sure to restart the app after change",
|
"piped_down_error_instructions": "The Piped instance {pipedInstance} is currently down\n\nEither change the instance or change the 'API type' to official YouTube API\n\nMake sure to restart the app after change",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "მომხმარებლის პროფილი",
|
"user_profile": "მომხმარებლის პროფილი",
|
||||||
"count_plays": "{count} გაწვდვა",
|
"count_plays": "{count} გაწვდვა",
|
||||||
"streaming_fees_hypothetical": "*ეს рассчитывается на основе выплат за поток от Spotify\nот $0.003 до $0.005. ეს ჰიპოთეტური გამოთვლა იძლევა მომხმარებელს წარმოდგენას იმაზე, რამდენად\nგადახდილი იქნებოდა არტისტებისთვის, თუ მათ მოუსმინოს Spotify-ს ტრეკებს.",
|
"streaming_fees_hypothetical": "*ეს рассчитывается на основе выплат за поток от Spotify\nот $0.003 до $0.005. ეს ჰიპოთეტური გამოთვლა იძლევა მომხმარებელს წარმოდგენას იმაზე, რამდენად\nგადახდილი იქნებოდა არტისტებისთვის, თუ მათ მოუსმინოს Spotify-ს ტრეკებს.",
|
||||||
"count_mins": "{minutes} წუთი",
|
"count_minutes": "{minutes} წუთი",
|
||||||
"summary_minutes": "წუთები",
|
"summary_minutes": "წუთები",
|
||||||
"summary_listened_to_music": "მუსიკა გაწვდილი",
|
"summary_listened_to_music": "მუსიკა გაწვდილი",
|
||||||
"summary_songs": "მელოდია",
|
"summary_songs": "მელოდია",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "სტრიმირებული სიმღერები",
|
"streamed_songs": "სტრიმირებული სიმღერები",
|
||||||
"count_streams": "{count} სტრიმი",
|
"count_streams": "{count} სტრიმი",
|
||||||
"owned_by_you": "შენ მიერ საკუთრებული",
|
"owned_by_you": "შენ მიერ საკუთრებული",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} აიღო კლიპბორდზე",
|
"copied_share_url_to_clipboard": "{shareUrl} აიღო კლიპბორდზე",
|
||||||
"spotify_hipotetical_calculation": "*ეს გამოითვლება Spotify-ის თითოეულ სტრიმზე\nგადახდის შესაბამისად, რომელიც $0.003 დან $0.005-მდეა. ეს არის ჰიპოთეტური\nგამოთვლა, რომელიც აჩვენებს მომხმარებელს რამდენი გადაიხდიდა\nარტისტებს, თუკი ისინი უსმენდნენ მათ სიმღერებს Spotify-ზე.",
|
"spotify_hypothetical_calculation": "*ეს გამოითვლება Spotify-ის თითოეულ სტრიმზე\nგადახდის შესაბამისად, რომელიც $0.003 დან $0.005-მდეა. ეს არის ჰიპოთეტური\nგამოთვლა, რომელიც აჩვენებს მომხმარებელს რამდენი გადაიხდიდა\nარტისტებს, თუკი ისინი უსმენდნენ მათ სიმღერებს Spotify-ზე.",
|
||||||
"webview_not_found": "ვებვიუ ვერ მოიძებნა",
|
"webview_not_found": "ვებვიუ ვერ მოიძებნა",
|
||||||
"webview_not_found_description": "თქვენს მოწყობილობაზე ვებვიუის შესრულების დრო არ არის დაყენებული.\nთუ დაყენებულია, დარწმუნდით, რომ ის environment PATH-შია\n\nდაყენების შემდეგ, გადატვირთეთ აპი",
|
"webview_not_found_description": "თქვენს მოწყობილობაზე ვებვიუის შესრულების დრო არ არის დაყენებული.\nთუ დაყენებულია, დარწმუნდით, რომ ის environment PATH-შია\n\nდაყენების შემდეგ, გადატვირთეთ აპი",
|
||||||
"unsupported_platform": "მოუხერხებელი პლატფორმა",
|
"unsupported_platform": "მოუხერხებელი პლატფორმა",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "미니 플레이어",
|
"mini_player": "미니 플레이어",
|
||||||
"slide_to_seek": "앞뒤로 슬라이드하여 탐색",
|
"slide_to_seek": "앞뒤로 슬라이드하여 탐색",
|
||||||
"shuffle_playlist": "플레이리스트를 섞기",
|
"shuffle_playlist": "플레이리스트를 섞기",
|
||||||
"unshuffle_playlist": "플레이리스트를 섞지 않기",
|
"not_shuffle_playlist": "플레이리스트를 섞지 않기",
|
||||||
"previous_track": "이전 곡",
|
"previous_track": "이전 곡",
|
||||||
"next_track": "다음 곡",
|
"next_track": "다음 곡",
|
||||||
"pause_playback": "일시정지",
|
"pause_playback": "일시정지",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "가장 먼저 먼저 들어갈 곳은 ",
|
"first_go_to": "가장 먼저 먼저 들어갈 곳은 ",
|
||||||
"login_if_not_logged_in": "그리고 로그인을 하지 않았다면 로그인해주세요",
|
"login_if_not_logged_in": "그리고 로그인을 하지 않았다면 로그인해주세요",
|
||||||
"step_2": "2단계",
|
"step_2": "2단계",
|
||||||
"step_2_steps": "1. 로그인에 성공하면、F12나 마우스 우클릭 > 검사(Inspect)을 눌러 브라우저의 개발자 도구(devtools)를 열어주세요.\n2. 애플리케이션 (Application) 탭 (Chrome, Edge, Brave 등) 또는 스토리지 탭 (Firefox, Palemoon 등)을 열어주세요.\n3. 쿠키 (Cookies) 섹션으로 들어가서, https://accounts.spotify.com 서브섹션으로 들어가주세요.",
|
"step_2_steps": "1. 로그인에 성공하면、F12나 마우스 우클릭 > 검사(Inspect)을 눌러 브라우저의 개발자 도구(devtools)를 열어주세요.\n2. 애플리케이션 (Application) 탭 (Chrome, Edge, Brave 등) 또는 스토리지 탭 (Firefox, Pale Moon 등)을 열어주세요.\n3. 쿠키 (Cookies) 섹션으로 들어가서, https://accounts.spotify.com 서브섹션으로 들어가주세요.",
|
||||||
"step_3": "3단계",
|
"step_3": "3단계",
|
||||||
"success_emoji": "성공🥳",
|
"success_emoji": "성공🥳",
|
||||||
"success_message": "성공적으로 스포티파이 게정으로 로그인했습니다. 잘했어요!",
|
"success_message": "성공적으로 스포티파이 게정으로 로그인했습니다. 잘했어요!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "장르 추가",
|
"add_genres": "장르 추가",
|
||||||
"country": "국가",
|
"country": "국가",
|
||||||
"number_of_tracks_generate": "생성할 곡 수",
|
"number_of_tracks_generate": "생성할 곡 수",
|
||||||
"acousticness": "반주 구간 (Acousticness)",
|
"not_acoustic": "반주 구간 (not_acoustic)",
|
||||||
"danceability": "흥겨운 정도 (Danceability)",
|
"dance_ability": "흥겨운 정도 (dance_ability)",
|
||||||
"energy": "에너지 (Energy)",
|
"energy": "에너지 (Energy)",
|
||||||
"instrumentalness": "기악성 (Instrumentalness)",
|
"not_instrumental": "기악성 (not_instrumental)",
|
||||||
"liveness": "생동감 (Liveness)",
|
"liveness": "생동감 (Liveness)",
|
||||||
"loudness": "라우드니스 (Loudness)",
|
"loudness": "라우드니스 (Loudness)",
|
||||||
"speechiness": "회화성 (Speechniss)",
|
"talkative": "회화성 (Speechniss)",
|
||||||
"valence": "감정가 (Valence)",
|
"valence": "감정가 (Valence)",
|
||||||
"popularity": "인기도 (Popularity)",
|
"popularity": "인기도 (Popularity)",
|
||||||
"key": "조성 (키)",
|
"key": "조성 (키)",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "최근에 추가된 순으로 정렬",
|
"sort_newest": "최근에 추가된 순으로 정렬",
|
||||||
"sort_oldest": "예전에 추가된 순으로 정렬",
|
"sort_oldest": "예전에 추가된 순으로 정렬",
|
||||||
"sleep_timer": "취침 타이머",
|
"sleep_timer": "취침 타이머",
|
||||||
"mins": "{minutes} 분",
|
"minutes": "{minutes} 분",
|
||||||
"hours": "{hours} 시간",
|
"hours": "{hours} 시간",
|
||||||
"hour": "{hours} 시간",
|
"hour": "{hours} 시간",
|
||||||
"custom_hours": "시간 설정",
|
"custom_hours": "시간 설정",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "오디오 출처",
|
"audio_source": "오디오 출처",
|
||||||
"ok": "알겠습니다",
|
"ok": "알겠습니다",
|
||||||
"failed_to_encrypt": "암호화에 실패했습니다",
|
"failed_to_encrypt": "암호화에 실패했습니다",
|
||||||
"encryption_failed_warning": "Spotube는 암호화를 사용하여 데이터를 안전하게 저장합니다. 하지만 그렇게 하지 못했습니다. 따라서 안전하지 않은 저장소로 대체됩니다.\n리눅스를 사용하는 경우, 비밀 서비스(gnome-keyring, kde-wallet, keepassxc 등)가 설치되어 있는지 확인하세요.",
|
"encryption_failed_warning": "Spotube는 암호화를 사용하여 데이터를 안전하게 저장합니다. 하지만 그렇게 하지 못했습니다. 따라서 안전하지 않은 저장소로 대체됩니다.\n리눅스를 사용하는 경우, 비밀 서비스(gnome-keyring, kde-wallet, KeePassXC 등)가 설치되어 있는지 확인하세요.",
|
||||||
"querying_info": "정보를 얻는 중...",
|
"querying_info": "정보를 얻는 중...",
|
||||||
"piped_api_down": "Piped API가 응답하지 않습니다",
|
"piped_api_down": "Piped API가 응답하지 않습니다",
|
||||||
"piped_down_error_instructions": "Piped 인스턴스 {pipedInstance}가 현재 다운되었습니다.\n\n인스턴스를 변경하거나 'API 유형'을 공식 YouTube API로 변경하세요.\n\n변경 후 앱을 다시 시작해야 합니다.",
|
"piped_down_error_instructions": "Piped 인스턴스 {pipedInstance}가 현재 다운되었습니다.\n\n인스턴스를 변경하거나 'API 유형'을 공식 YouTube API로 변경하세요.\n\n변경 후 앱을 다시 시작해야 합니다.",
|
||||||
@ -367,7 +367,7 @@
|
|||||||
"user_profile": "사용자 프로필",
|
"user_profile": "사용자 프로필",
|
||||||
"count_plays": "{count} 재생",
|
"count_plays": "{count} 재생",
|
||||||
"streaming_fees_hypothetical": "*이것은 Spotify의 스트림당 지급액\n$0.003에서 $0.005를 기준으로 계산된 것입니다.\n이것은 사용자가 Spotify에서 곡을 들었을 때\n아티스트에게 지불했을 금액에 대한 통찰을 제공하기 위한\n가상의 계산입니다.",
|
"streaming_fees_hypothetical": "*이것은 Spotify의 스트림당 지급액\n$0.003에서 $0.005를 기준으로 계산된 것입니다.\n이것은 사용자가 Spotify에서 곡을 들었을 때\n아티스트에게 지불했을 금액에 대한 통찰을 제공하기 위한\n가상의 계산입니다.",
|
||||||
"count_mins": "{minutes} 분",
|
"count_minutes": "{minutes} 분",
|
||||||
"summary_minutes": "분",
|
"summary_minutes": "분",
|
||||||
"summary_listened_to_music": "듣는 음악",
|
"summary_listened_to_music": "듣는 음악",
|
||||||
"summary_songs": "곡",
|
"summary_songs": "곡",
|
||||||
@ -384,8 +384,8 @@
|
|||||||
"streamed_songs": "스트리밍된 곡",
|
"streamed_songs": "스트리밍된 곡",
|
||||||
"count_streams": "{count} 스트림",
|
"count_streams": "{count} 스트림",
|
||||||
"owned_by_you": "당신이 소유",
|
"owned_by_you": "당신이 소유",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl}를 클립보드에 복사했습니다",
|
"copied_share_url_to_clipboard": "{shareUrl}를 클립보드에 복사했습니다",
|
||||||
"spotify_hipotetical_calculation": "*Spotify의 스트림당 지불금 $0.003에서 $0.005까지의\n기준으로 계산되었습니다. 이는 사용자가 Spotify에서\n곡을 들을 때 아티스트에게 얼마를 지불했을지를\n알려주기 위한 가상의 계산입니다.",
|
"spotify_hypothetical_calculation": "*Spotify의 스트림당 지불금 $0.003에서 $0.005까지의\n기준으로 계산되었습니다. 이는 사용자가 Spotify에서\n곡을 들을 때 아티스트에게 얼마를 지불했을지를\n알려주기 위한 가상의 계산입니다.",
|
||||||
"webview_not_found": "웹뷰를 찾을 수 없음",
|
"webview_not_found": "웹뷰를 찾을 수 없음",
|
||||||
"webview_not_found_description": "기기에 웹뷰 런타임이 설치되지 않았습니다.\n설치되어 있으면 environment PATH에 있는지 확인하십시오\n\n설치 후 앱을 다시 시작하세요",
|
"webview_not_found_description": "기기에 웹뷰 런타임이 설치되지 않았습니다.\n설치되어 있으면 environment PATH에 있는지 확인하십시오\n\n설치 후 앱을 다시 시작하세요",
|
||||||
"unsupported_platform": "지원되지 않는 플랫폼",
|
"unsupported_platform": "지원되지 않는 플랫폼",
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
"mini_player": "मिनि प्लेयर",
|
"mini_player": "मिनि प्लेयर",
|
||||||
"slide_to_seek": "अगाडि वा पछाडि खोजी गर्नका लागि स्लाइड गर्नुहोस्",
|
"slide_to_seek": "अगाडि वा पछाडि खोजी गर्नका लागि स्लाइड गर्नुहोस्",
|
||||||
"shuffle_playlist": "प्लेलिस्ट शफल गर्नुहोस्",
|
"shuffle_playlist": "प्लेलिस्ट शफल गर्नुहोस्",
|
||||||
"unshuffle_playlist": "प्लेलिस्ट शफल नगर्नुहोस्",
|
"not_shuffle_playlist": "प्लेलिस्ट शफल नगर्नुहोस्",
|
||||||
"previous_track": "पूर्व ट्र्याक",
|
"previous_track": "पूर्व ट्र्याक",
|
||||||
"next_track": "अरू ट्र्याक",
|
"next_track": "अरू ट्र्याक",
|
||||||
"pause_playback": "प्लेब्याक रोक्नुहोस्",
|
"pause_playback": "प्लेब्याक रोक्नुहोस्",
|
||||||
@ -175,7 +175,7 @@
|
|||||||
"first_go_to": "पहिलो, जानुहोस्",
|
"first_go_to": "पहिलो, जानुहोस्",
|
||||||
"login_if_not_logged_in": "र लगइन/साइनअप गर्नुहोस् जुन तपाईंले लगइन गरेनन्",
|
"login_if_not_logged_in": "र लगइन/साइनअप गर्नुहोस् जुन तपाईंले लगइन गरेनन्",
|
||||||
"step_2": "कदम 2",
|
"step_2": "कदम 2",
|
||||||
"step_2_steps": "1. एकबार तपाईं लगइन गरे पछि, F12 थिच्नुहोस् वा माउस राइट क्लिक गर्नुहोस् > इन्स्पेक्ट गर्नुहोस् भने ब्राउजर डेभटुलहरू खुलाउनका लागि।\n2. तपाईंको \"एप्लिकेसन\" ट्याबमा जानुहोस् (Chrome, Edge, Brave इत्यादि) वा \"स्टोरेज\" ट्याबमा जानुहोस् (Firefox, Palemoon इत्यादि)\n3. तपाईंको इन्सेक्ट गरेको ब्राउजर डेभटुलहरूमा \"कुकीहरू\" खण्डमा जानुहोस् अनि \"https://accounts.spotify.com\" उपकोणमा जानुहोस्",
|
"step_2_steps": "1. एकबार तपाईं लगइन गरे पछि, F12 थिच्नुहोस् वा माउस राइट क्लिक गर्नुहोस् > इन्स्पेक्ट गर्नुहोस् भने ब्राउजर डेभटुलहरू खुलाउनका लागि।\n2. तपाईंको \"एप्लिकेसन\" ट्याबमा जानुहोस् (Chrome, Edge, Brave इत्यादि) वा \"स्टोरेज\" ट्याबमा जानुहोस् (Firefox, Pale Moon इत्यादि)\n3. तपाईंको इन्सेक्ट गरेको ब्राउजर डेभटुलहरूमा \"कुकीहरू\" खण्डमा जानुहोस् अनि \"https://accounts.spotify.com\" उपकोणमा जानुहोस्",
|
||||||
"step_3": "कदम 3",
|
"step_3": "कदम 3",
|
||||||
"step_3_steps": "\"sp_dc\" र \"sp_key\" (वा sp_gaid) कुकीहरूको मानहरू प्रतिलिपि गर्नुहोस्",
|
"step_3_steps": "\"sp_dc\" र \"sp_key\" (वा sp_gaid) कुकीहरूको मानहरू प्रतिलिपि गर्नुहोस्",
|
||||||
"success_emoji": "सफलता 🥳",
|
"success_emoji": "सफलता 🥳",
|
||||||
@ -198,13 +198,13 @@
|
|||||||
"add_genres": "जनरहरू थप्नुहोस्",
|
"add_genres": "जनरहरू थप्नुहोस्",
|
||||||
"country": "देश",
|
"country": "देश",
|
||||||
"number_of_tracks_generate": "बनाउनका लागि ट्र्याकहरूको संख्या",
|
"number_of_tracks_generate": "बनाउनका लागि ट्र्याकहरूको संख्या",
|
||||||
"acousticness": "एकोस्टिकनेस",
|
"not_acoustic": "एकोस्टिकनेस",
|
||||||
"danceability": "नृत्यक्षमता",
|
"dance_ability": "नृत्यक्षमता",
|
||||||
"energy": "ऊर्जा",
|
"energy": "ऊर्जा",
|
||||||
"instrumentalness": "साजा रहेकोता",
|
"not_instrumental": "साजा रहेकोता",
|
||||||
"liveness": "प्राणिकता",
|
"liveness": "प्राणिकता",
|
||||||
"loudness": "शोर",
|
"loudness": "शोर",
|
||||||
"speechiness": "भाषण",
|
"talkative": "भाषण",
|
||||||
"valence": "मानसिक स्वभाव",
|
"valence": "मानसिक स्वभाव",
|
||||||
"popularity": "लोकप्रियता",
|
"popularity": "लोकप्रियता",
|
||||||
"key": "कुञ्जी",
|
"key": "कुञ्जी",
|
||||||
@ -243,7 +243,7 @@
|
|||||||
"sort_newest": "नयाँ थपिएकोमा क्रमबद्ध गर्नुहोस्",
|
"sort_newest": "नयाँ थपिएकोमा क्रमबद्ध गर्नुहोस्",
|
||||||
"sort_oldest": "पुरानो थपिएकोमा क्रमबद्ध गर्नुहोस्",
|
"sort_oldest": "पुरानो थपिएकोमा क्रमबद्ध गर्नुहोस्",
|
||||||
"sleep_timer": "सुत्ने टाइमर",
|
"sleep_timer": "सुत्ने टाइमर",
|
||||||
"mins": "{minutes} मिनेटहरू",
|
"minutes": "{minutes} मिनेटहरू",
|
||||||
"hours": "{hours} घण्टाहरू",
|
"hours": "{hours} घण्टाहरू",
|
||||||
"hour": "{hours} घण्टा",
|
"hour": "{hours} घण्टा",
|
||||||
"custom_hours": "कस्टम घण्टाहरू",
|
"custom_hours": "कस्टम घण्टाहरू",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "प्रयोगकर्ता प्रोफाइल",
|
"user_profile": "प्रयोगकर्ता प्रोफाइल",
|
||||||
"count_plays": "{count} खेलाइन्छ",
|
"count_plays": "{count} खेलाइन्छ",
|
||||||
"streaming_fees_hypothetical": "*यो Spotify को प्रति स्ट्रिमको आधारमा गणना गरिएको छ\n$0.003 देखि $0.005 बीचको भुक्तानी। यो एक काल्पनिक गणना हो\nउपयोगकर्तालाई यो थाहा दिनको लागि कि उनीहरूले अर्टिस्टहरूलाई\nSpotify मा गीत सुनेको भए कति भुक्तानी गर्ने थिए।",
|
"streaming_fees_hypothetical": "*यो Spotify को प्रति स्ट्रिमको आधारमा गणना गरिएको छ\n$0.003 देखि $0.005 बीचको भुक्तानी। यो एक काल्पनिक गणना हो\nउपयोगकर्तालाई यो थाहा दिनको लागि कि उनीहरूले अर्टिस्टहरूलाई\nSpotify मा गीत सुनेको भए कति भुक्तानी गर्ने थिए।",
|
||||||
"count_mins": "{minutes} मिनेट",
|
"count_minutes": "{minutes} मिनेट",
|
||||||
"summary_minutes": "मिनेट",
|
"summary_minutes": "मिनेट",
|
||||||
"summary_listened_to_music": "सङ्गीत सुन्नु",
|
"summary_listened_to_music": "सङ्गीत सुन्नु",
|
||||||
"summary_songs": "गीतहरू",
|
"summary_songs": "गीतहरू",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "स्ट्रीम गरिएका गीतहरू",
|
"streamed_songs": "स्ट्रीम गरिएका गीतहरू",
|
||||||
"count_streams": "{count} स्ट्रिम",
|
"count_streams": "{count} स्ट्रिम",
|
||||||
"owned_by_you": "तपाईंले स्वामित्व गरेको",
|
"owned_by_you": "तपाईंले स्वामित्व गरेको",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} क्लिपबोर्डमा कपी गरियो",
|
"copied_share_url_to_clipboard": "{shareUrl} क्लिपबोर्डमा कपी गरियो",
|
||||||
"spotify_hipotetical_calculation": "*यो Spotify को प्रति स्ट्रीम भुगतानको आधारमा\n$0.003 देखि $0.005 को बीचमा गणना गरिएको हो। यो एक काल्पनिक\nगणना हो जसले प्रयोगकर्तालाई देखाउँछ कि उनीहरूले कति\nअर्टिस्टहरूलाई तिनीहरूका गीतहरू Spotify मा सुनेमा\nभुक्तान गर्नुपर्ने थियो।",
|
"spotify_hypothetical_calculation": "*यो Spotify को प्रति स्ट्रीम भुगतानको आधारमा\n$0.003 देखि $0.005 को बीचमा गणना गरिएको हो। यो एक काल्पनिक\nगणना हो जसले प्रयोगकर्तालाई देखाउँछ कि उनीहरूले कति\nअर्टिस्टहरूलाई तिनीहरूका गीतहरू Spotify मा सुनेमा\nभुक्तान गर्नुपर्ने थियो।",
|
||||||
"webview_not_found": "वेबभ्यू फेला परेन",
|
"webview_not_found": "वेबभ्यू फेला परेन",
|
||||||
"webview_not_found_description": "तपाईंको उपकरणमा कुनै वेबभ्यू रनटाइम स्थापना गरिएको छैन।\nयदि स्थापना गरिएको छ भने, environment PATH मा छ कि छैन भनेर सुनिश्चित गर्नुहोस्\n\nस्थापना पछि, अनुप्रयोग पुनः सुरु गर्नुहोस्",
|
"webview_not_found_description": "तपाईंको उपकरणमा कुनै वेबभ्यू रनटाइम स्थापना गरिएको छैन।\nयदि स्थापना गरिएको छ भने, environment PATH मा छ कि छैन भनेर सुनिश्चित गर्नुहोस्\n\nस्थापना पछि, अनुप्रयोग पुनः सुरु गर्नुहोस्",
|
||||||
"unsupported_platform": "असमर्थित प्लेटफार्म",
|
"unsupported_platform": "असमर्थित प्लेटफार्म",
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
"mini_player": "Minispeler",
|
"mini_player": "Minispeler",
|
||||||
"slide_to_seek": "Schuiven om vooruit of achteruit te zoeken",
|
"slide_to_seek": "Schuiven om vooruit of achteruit te zoeken",
|
||||||
"shuffle_playlist": "Afspeellijst schuifelen",
|
"shuffle_playlist": "Afspeellijst schuifelen",
|
||||||
"unshuffle_playlist": "Afspeellijst onschuifelen",
|
"not_shuffle_playlist": "Afspeellijst onschuifelen",
|
||||||
"previous_track": "Vorige nummer",
|
"previous_track": "Vorige nummer",
|
||||||
"next_track": "Volgende nummer",
|
"next_track": "Volgende nummer",
|
||||||
"pause_playback": "Afspelen pauzeren",
|
"pause_playback": "Afspelen pauzeren",
|
||||||
@ -175,7 +175,7 @@
|
|||||||
"first_go_to": "Ga eerst naar",
|
"first_go_to": "Ga eerst naar",
|
||||||
"login_if_not_logged_in": "en Inloggen/Aanmelden als je niet bent ingelogd",
|
"login_if_not_logged_in": "en Inloggen/Aanmelden als je niet bent ingelogd",
|
||||||
"step_2": "Stap 2",
|
"step_2": "Stap 2",
|
||||||
"step_2_steps": "1. Zodra je bent aangemeld, druk je op F12 of klik je met de rechtermuisknop > Inspect om de Browser devtools te openen.\n2. Ga vervolgens naar het tabblad \"Toepassing\" (Chrome, Edge, Brave enz..) of naar het tabblad \"Opslag\" (Firefox, Palemoon enz..).\n3. Ga naar de sectie \"Cookies\" en vervolgens naar de subsectie \"https://accounts.spotify.com\".",
|
"step_2_steps": "1. Zodra je bent aangemeld, druk je op F12 of klik je met de rechtermuisknop > Inspect om de Browser devtools te openen.\n2. Ga vervolgens naar het tabblad \"Toepassing\" (Chrome, Edge, Brave enz..) of naar het tabblad \"Opslag\" (Firefox, Pale Moon enz..).\n3. Ga naar de sectie \"Cookies\" en vervolgens naar de subsectie \"https://accounts.spotify.com\".",
|
||||||
"step_3": "Stap 3",
|
"step_3": "Stap 3",
|
||||||
"step_3_steps": "De waarde van cookie \"sp_dc\" kopiëren",
|
"step_3_steps": "De waarde van cookie \"sp_dc\" kopiëren",
|
||||||
"success_emoji": "Succes🥳",
|
"success_emoji": "Succes🥳",
|
||||||
@ -198,13 +198,13 @@
|
|||||||
"add_genres": "Genres toevoegen",
|
"add_genres": "Genres toevoegen",
|
||||||
"country": "Land",
|
"country": "Land",
|
||||||
"number_of_tracks_generate": "Aantal nummers om te genereren",
|
"number_of_tracks_generate": "Aantal nummers om te genereren",
|
||||||
"acousticness": "Akoestiek",
|
"not_acoustic": "Akoestiek",
|
||||||
"danceability": "Dansbaarheid",
|
"dance_ability": "Dansbaarheid",
|
||||||
"energy": "Energie",
|
"energy": "Energie",
|
||||||
"instrumentalness": "Instrumentaliteit",
|
"not_instrumental": "Instrumentaliteit",
|
||||||
"liveness": "Levendigheid",
|
"liveness": "Levendigheid",
|
||||||
"loudness": "Luidheid",
|
"loudness": "Luidheid",
|
||||||
"speechiness": "Spraak",
|
"talkative": "Spraak",
|
||||||
"valence": "Valentie",
|
"valence": "Valentie",
|
||||||
"popularity": "Populariteit",
|
"popularity": "Populariteit",
|
||||||
"key": "Sleutel",
|
"key": "Sleutel",
|
||||||
@ -225,7 +225,7 @@
|
|||||||
"generating_playlist": "Aangepaste afspeellijst genereren…",
|
"generating_playlist": "Aangepaste afspeellijst genereren…",
|
||||||
"selected_count_tracks": "{count} nummers geselecteerd",
|
"selected_count_tracks": "{count} nummers geselecteerd",
|
||||||
"download_warning": "Als je alle nummers in bulk downloadt, ben je duidelijk bezig met muziekpiraterij en breng je schade toe aan de creatieve muziekmaatschappij. Ik hoop dat je je hiervan bewust bent. Probeer altijd het harde werk van artiesten te respecteren en te steunen.",
|
"download_warning": "Als je alle nummers in bulk downloadt, ben je duidelijk bezig met muziekpiraterij en breng je schade toe aan de creatieve muziekmaatschappij. Ik hoop dat je je hiervan bewust bent. Probeer altijd het harde werk van artiesten te respecteren en te steunen.",
|
||||||
"download_ip_ban_warning": "BTW, je IP-adres kan worden geblokkeerd op YouTube als gevolg van buitensporige downloadverzoeken. IP-blokkering betekent dat je YouTube niet kunt gebruiken (zelfs als je ingelogd bent) voor tenminste 2-3 maanden vanaf dat IP-apparaat. Spotube is niet verantwoordelijk als dit ooit gebeurt.",
|
"download_ip_ban_warning": "BTW, je IP-adres kan worden geblokkeerd op YouTube als gevolg van buitensporige downloadverzoeken. IP-blokkering betekent dat je YouTube niet kunt gebruiken (zelfs als je ingelogd bent) voor tenminuteste 2-3 maanden vanaf dat IP-apparaat. Spotube is niet verantwoordelijk als dit ooit gebeurt.",
|
||||||
"by_clicking_accept_terms": "Door op 'accepteren' te klikken ga je akkoord met de volgende voorwaarden:",
|
"by_clicking_accept_terms": "Door op 'accepteren' te klikken ga je akkoord met de volgende voorwaarden:",
|
||||||
"download_agreement_1": "Ik weet dat ik muziek illegaal donload. Ik ben slecht.",
|
"download_agreement_1": "Ik weet dat ik muziek illegaal donload. Ik ben slecht.",
|
||||||
"download_agreement_2": "Ik steun de artiest waar ik kan en ik doe dit alleen omdat ik geen geld heb om hun kunst te kopen.",
|
"download_agreement_2": "Ik steun de artiest waar ik kan en ik doe dit alleen omdat ik geen geld heb om hun kunst te kopen.",
|
||||||
@ -243,7 +243,7 @@
|
|||||||
"sort_newest": "Sorteren op nieuwste toegevoegd",
|
"sort_newest": "Sorteren op nieuwste toegevoegd",
|
||||||
"sort_oldest": "Sorteren op oudste toegevoegd",
|
"sort_oldest": "Sorteren op oudste toegevoegd",
|
||||||
"sleep_timer": "Slaaptimer",
|
"sleep_timer": "Slaaptimer",
|
||||||
"mins": "{minutes} minuten",
|
"minutes": "{minutes} minuten",
|
||||||
"hours": "{hours} uren",
|
"hours": "{hours} uren",
|
||||||
"hour": "{hours} uur",
|
"hour": "{hours} uur",
|
||||||
"custom_hours": "Aangepaste uren",
|
"custom_hours": "Aangepaste uren",
|
||||||
@ -254,7 +254,7 @@
|
|||||||
"youtube_api_type": "API-type",
|
"youtube_api_type": "API-type",
|
||||||
"ok": "Oké",
|
"ok": "Oké",
|
||||||
"failed_to_encrypt": "Versleuteling mislukt",
|
"failed_to_encrypt": "Versleuteling mislukt",
|
||||||
"encryption_failed_warning": "Spotube gebruikt versleuteling om je gegevens veilig op te slaan. Maar dat is niet gelukt. Dus zal het terugvallen op onveilige opslag.\nAls je linux gebruikt, zorg er dan voor dat je een geheim-dienst (gnome-keyring, kde-wallet, keepassxc etc) hebt geïnstalleerd.",
|
"encryption_failed_warning": "Spotube gebruikt versleuteling om je gegevens veilig op te slaan. Maar dat is niet gelukt. Dus zal het terugvallen op onveilige opslag.\nAls je linux gebruikt, zorg er dan voor dat je een geheim-dienst (gnome-keyring, kde-wallet, KeePassXC etc) hebt geïnstalleerd.",
|
||||||
"querying_info": "Info opvragen…",
|
"querying_info": "Info opvragen…",
|
||||||
"piped_api_down": "Piped API is uit",
|
"piped_api_down": "Piped API is uit",
|
||||||
"piped_down_error_instructions": "De Piped-instantie {pipedInstance} is momenteel uitgevallen\n\nVerander de instantie of verander het 'API-type' naar de officiële YouTube API.\n\nZorg ervoor dat u de app herstart na de wijziging",
|
"piped_down_error_instructions": "De Piped-instantie {pipedInstance} is momenteel uitgevallen\n\nVerander de instantie of verander het 'API-type' naar de officiële YouTube API.\n\nZorg ervoor dat u de app herstart na de wijziging",
|
||||||
@ -367,7 +367,7 @@
|
|||||||
"user_profile": "Gebruikersprofiel",
|
"user_profile": "Gebruikersprofiel",
|
||||||
"count_plays": "{count} afspeelbeurten",
|
"count_plays": "{count} afspeelbeurten",
|
||||||
"streaming_fees_hypothetical": "*Dit is berekend op basis van Spotify's uitbetaling per stream\nvan $0.003 tot $0.005. Dit is een hypothetische\nberekening om gebruikers inzicht te geven in hoeveel ze\naan de artiesten zouden hebben betaald als ze hun lied op Spotify zouden hebben beluisterd.",
|
"streaming_fees_hypothetical": "*Dit is berekend op basis van Spotify's uitbetaling per stream\nvan $0.003 tot $0.005. Dit is een hypothetische\nberekening om gebruikers inzicht te geven in hoeveel ze\naan de artiesten zouden hebben betaald als ze hun lied op Spotify zouden hebben beluisterd.",
|
||||||
"count_mins": "{minutes} min",
|
"count_minutes": "{minutes} min",
|
||||||
"summary_minutes": "minuten",
|
"summary_minutes": "minuten",
|
||||||
"summary_listened_to_music": "Beluisterde muziek",
|
"summary_listened_to_music": "Beluisterde muziek",
|
||||||
"summary_songs": "nummers",
|
"summary_songs": "nummers",
|
||||||
@ -384,8 +384,8 @@
|
|||||||
"streamed_songs": "Gestreamde nummers",
|
"streamed_songs": "Gestreamde nummers",
|
||||||
"count_streams": "{count} streams",
|
"count_streams": "{count} streams",
|
||||||
"owned_by_you": "Bezit door jou",
|
"owned_by_you": "Bezit door jou",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} gekopieerd naar klembord",
|
"copied_share_url_to_clipboard": "{shareUrl} gekopieerd naar klembord",
|
||||||
"spotify_hipotetical_calculation": "*Dit is berekend op basis van Spotify's betaling per stream\nvan $0.003 tot $0.005. Dit is een hypothetische\nberekening om de gebruiker inzicht te geven in hoeveel ze\naan de artiesten zouden hebben betaald als ze hun liedjes op Spotify\nzouden luisteren.",
|
"spotify_hypothetical_calculation": "*Dit is berekend op basis van Spotify's betaling per stream\nvan $0.003 tot $0.005. Dit is een hypothetische\nberekening om de gebruiker inzicht te geven in hoeveel ze\naan de artiesten zouden hebben betaald als ze hun liedjes op Spotify\nzouden luisteren.",
|
||||||
"webview_not_found": "Webview niet gevonden",
|
"webview_not_found": "Webview niet gevonden",
|
||||||
"webview_not_found_description": "Er is geen Webview-runtime geïnstalleerd op uw apparaat.\nAls het is geïnstalleerd, zorg ervoor dat het in het environment PATH staat\n\nHerstart de app na installatie",
|
"webview_not_found_description": "Er is geen Webview-runtime geïnstalleerd op uw apparaat.\nAls het is geïnstalleerd, zorg ervoor dat het in het environment PATH staat\n\nHerstart de app na installatie",
|
||||||
"unsupported_platform": "Niet ondersteund platform",
|
"unsupported_platform": "Niet ondersteund platform",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "Mały odwarzacz",
|
"mini_player": "Mały odwarzacz",
|
||||||
"slide_to_seek": "Przesuń, aby przewinąć do przodu lub do tyłu.",
|
"slide_to_seek": "Przesuń, aby przewinąć do przodu lub do tyłu.",
|
||||||
"shuffle_playlist": "Odtwarzaj losowo z playlisty",
|
"shuffle_playlist": "Odtwarzaj losowo z playlisty",
|
||||||
"unshuffle_playlist": "Nie odtwarzaj losowo z playlisty",
|
"not_shuffle_playlist": "Nie odtwarzaj losowo z playlisty",
|
||||||
"previous_track": "Poprzedni utwór",
|
"previous_track": "Poprzedni utwór",
|
||||||
"next_track": "Następny utwór",
|
"next_track": "Następny utwór",
|
||||||
"pause_playback": "Zatrzymaj odwarzanie",
|
"pause_playback": "Zatrzymaj odwarzanie",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "Po pierwsze przejdź do",
|
"first_go_to": "Po pierwsze przejdź do",
|
||||||
"login_if_not_logged_in": "i Zaloguj się/Zarejestruj jeśli nie jesteś zalogowany",
|
"login_if_not_logged_in": "i Zaloguj się/Zarejestruj jeśli nie jesteś zalogowany",
|
||||||
"step_2": "Krok 2",
|
"step_2": "Krok 2",
|
||||||
"step_2_steps": "1. Jeśli jesteś zalogowany, naciśnij klawisz F12 lub Kliknij prawym przyciskiem myszy > Zbadaj, aby odtworzyć narzędzia developerskie.\n2. Następnie przejdź do zakładki \"Application\" (Chrome, Edge, Brave etc..) lub zakładki \"Storage\" (Firefox, Palemoon etc..)\n3. Przejdź do sekcji \"Cookies\" a następnie do pod-sekcji \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Jeśli jesteś zalogowany, naciśnij klawisz F12 lub Kliknij prawym przyciskiem myszy > Zbadaj, aby odtworzyć narzędzia developerskie.\n2. Następnie przejdź do zakładki \"Application\" (Chrome, Edge, Brave etc..) lub zakładki \"Storage\" (Firefox, Pale Moon etc..)\n3. Przejdź do sekcji \"Cookies\" a następnie do pod-sekcji \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Krok 3",
|
"step_3": "Krok 3",
|
||||||
"success_emoji": "Sukces!🥳",
|
"success_emoji": "Sukces!🥳",
|
||||||
"success_message": "Udało ci się zalogować! Dobra robota, stary!",
|
"success_message": "Udało ci się zalogować! Dobra robota, stary!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "Dodaj Gatunki",
|
"add_genres": "Dodaj Gatunki",
|
||||||
"country": "Kraj",
|
"country": "Kraj",
|
||||||
"number_of_tracks_generate": "Liczba utworów do wygenerowania",
|
"number_of_tracks_generate": "Liczba utworów do wygenerowania",
|
||||||
"acousticness": "Akustyczna",
|
"not_acoustic": "Akustyczna",
|
||||||
"danceability": "Taneczna",
|
"dance_ability": "Taneczna",
|
||||||
"energy": "Energiczna",
|
"energy": "Energiczna",
|
||||||
"instrumentalness": "Instrumentalna",
|
"not_instrumental": "Instrumentalna",
|
||||||
"liveness": "Żywa",
|
"liveness": "Żywa",
|
||||||
"loudness": "Głośna",
|
"loudness": "Głośna",
|
||||||
"speechiness": "Wymowna",
|
"talkative": "Wymowna",
|
||||||
"valence": "Wartościowa",
|
"valence": "Wartościowa",
|
||||||
"popularity": "Popularność",
|
"popularity": "Popularność",
|
||||||
"key": "Kluczowa",
|
"key": "Kluczowa",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "Sortuj według ostatnio dodanych",
|
"sort_newest": "Sortuj według ostatnio dodanych",
|
||||||
"sort_oldest": "Sortuj według najstarszych dodanych",
|
"sort_oldest": "Sortuj według najstarszych dodanych",
|
||||||
"sleep_timer": "Minutnik",
|
"sleep_timer": "Minutnik",
|
||||||
"mins": "{minutes} Minuty",
|
"minutes": "{minutes} Minuty",
|
||||||
"hours": "{hours} Godziny",
|
"hours": "{hours} Godziny",
|
||||||
"hour": "{hours} Godzina",
|
"hour": "{hours} Godzina",
|
||||||
"custom_hours": "Własne godziny",
|
"custom_hours": "Własne godziny",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "Źródło dźwięku",
|
"audio_source": "Źródło dźwięku",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"failed_to_encrypt": "Nie można zaszyfrować :(",
|
"failed_to_encrypt": "Nie można zaszyfrować :(",
|
||||||
"encryption_failed_warning": "Spotube używa szyfrowania do bezpiecznego przechowywania danych. Ale nie udało się tego zrobić. Więc powróci do niezabezpieczonego przechowywania\nJeśli używasz Linuksa, upewnij się, że masz zainstalowane jakieś usługi do szyfrowania (gnome-keyring, kde-wallet, keepassxc itp.)",
|
"encryption_failed_warning": "Spotube używa szyfrowania do bezpiecznego przechowywania danych. Ale nie udało się tego zrobić. Więc powróci do niezabezpieczonego przechowywania\nJeśli używasz Linuksa, upewnij się, że masz zainstalowane jakieś usługi do szyfrowania (gnome-keyring, kde-wallet, KeePassXC itp.)",
|
||||||
"querying_info": "Szukam informacji...",
|
"querying_info": "Szukam informacji...",
|
||||||
"piped_api_down": "API Piped jest niedostępne",
|
"piped_api_down": "API Piped jest niedostępne",
|
||||||
"piped_down_error_instructions": "Instancja Piped {pipedInstance} jest obecnie niedostępna\n\nZmień instancję lub zmień 'Rodzaj API' na oficjalne API YouTube\n\nUpewnij się, że po zmianie zrestartujesz aplikację",
|
"piped_down_error_instructions": "Instancja Piped {pipedInstance} jest obecnie niedostępna\n\nZmień instancję lub zmień 'Rodzaj API' na oficjalne API YouTube\n\nUpewnij się, że po zmianie zrestartujesz aplikację",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "Profil użytkownika",
|
"user_profile": "Profil użytkownika",
|
||||||
"count_plays": "{count} odtworzeń",
|
"count_plays": "{count} odtworzeń",
|
||||||
"streaming_fees_hypothetical": "*Obliczone na podstawie wypłaty Spotify za stream\nod $0.003 do $0.005. Jest to hipotetyczne\nobliczenie, które ma na celu pokazanie, ile\nużytkownik zapłaciłby artystom, gdyby odsłuchał\ntych utworów na Spotify.",
|
"streaming_fees_hypothetical": "*Obliczone na podstawie wypłaty Spotify za stream\nod $0.003 do $0.005. Jest to hipotetyczne\nobliczenie, które ma na celu pokazanie, ile\nużytkownik zapłaciłby artystom, gdyby odsłuchał\ntych utworów na Spotify.",
|
||||||
"count_mins": "{minutes} min",
|
"count_minutes": "{minutes} min",
|
||||||
"summary_minutes": "minuty",
|
"summary_minutes": "minuty",
|
||||||
"summary_listened_to_music": "Słuchana muzyka",
|
"summary_listened_to_music": "Słuchana muzyka",
|
||||||
"summary_songs": "utwory",
|
"summary_songs": "utwory",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "Strumieniowane utwory",
|
"streamed_songs": "Strumieniowane utwory",
|
||||||
"count_streams": "{count} strumieni",
|
"count_streams": "{count} strumieni",
|
||||||
"owned_by_you": "Własność Twoja",
|
"owned_by_you": "Własność Twoja",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} skopiowano do schowka",
|
"copied_share_url_to_clipboard": "{shareUrl} skopiowano do schowka",
|
||||||
"spotify_hipotetical_calculation": "*Obliczone na podstawie płatności Spotify za strumień\nw zakresie od $0.003 do $0.005. Jest to hipotetyczne\nobliczenie mające na celu pokazanie użytkownikowi, ile\nzapłaciliby artystom, gdyby słuchali ich utworów na Spotify.",
|
"spotify_hypothetical_calculation": "*Obliczone na podstawie płatności Spotify za strumień\nw zakresie od $0.003 do $0.005. Jest to hipotetyczne\nobliczenie mające na celu pokazanie użytkownikowi, ile\nzapłaciliby artystom, gdyby słuchali ich utworów na Spotify.",
|
||||||
"webview_not_found": "Nie znaleziono Webview",
|
"webview_not_found": "Nie znaleziono Webview",
|
||||||
"webview_not_found_description": "Na twoim urządzeniu nie zainstalowano środowiska uruchomieniowego Webview.\nJeśli jest zainstalowany, upewnij się, że jest w environment PATH\n\nPo instalacji uruchom ponownie aplikację",
|
"webview_not_found_description": "Na twoim urządzeniu nie zainstalowano środowiska uruchomieniowego Webview.\nJeśli jest zainstalowany, upewnij się, że jest w environment PATH\n\nPo instalacji uruchom ponownie aplikację",
|
||||||
"unsupported_platform": "Nieobsługiwana platforma",
|
"unsupported_platform": "Nieobsługiwana platforma",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "Mini Player",
|
"mini_player": "Mini Player",
|
||||||
"slide_to_seek": "Arraste para avançar ou retroceder",
|
"slide_to_seek": "Arraste para avançar ou retroceder",
|
||||||
"shuffle_playlist": "Embaralhar playlist",
|
"shuffle_playlist": "Embaralhar playlist",
|
||||||
"unshuffle_playlist": "Desembaralhar playlist",
|
"not_shuffle_playlist": "Desembaralhar playlist",
|
||||||
"previous_track": "Faixa anterior",
|
"previous_track": "Faixa anterior",
|
||||||
"next_track": "Próxima faixa",
|
"next_track": "Próxima faixa",
|
||||||
"pause_playback": "Pausar Reprodução",
|
"pause_playback": "Pausar Reprodução",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "Primeiro, vá para",
|
"first_go_to": "Primeiro, vá para",
|
||||||
"login_if_not_logged_in": "e faça login/cadastro se ainda não estiver logado",
|
"login_if_not_logged_in": "e faça login/cadastro se ainda não estiver logado",
|
||||||
"step_2": "Passo 2",
|
"step_2": "Passo 2",
|
||||||
"step_2_steps": "1. Uma vez logado, pressione F12 ou clique com o botão direito do mouse > Inspecionar para abrir as ferramentas de desenvolvimento do navegador.\n2. Em seguida, vá para a guia \"Aplicativo\" (Chrome, Edge, Brave, etc.) ou \"Armazenamento\" (Firefox, Palemoon, etc.)\n3. Acesse a seção \"Cookies\" e depois a subseção \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Uma vez logado, pressione F12 ou clique com o botão direito do mouse > Inspecionar para abrir as ferramentas de desenvolvimento do navegador.\n2. Em seguida, vá para a guia \"Aplicativo\" (Chrome, Edge, Brave, etc.) ou \"Armazenamento\" (Firefox, Pale Moon, etc.)\n3. Acesse a seção \"Cookies\" e depois a subseção \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Passo 3",
|
"step_3": "Passo 3",
|
||||||
"success_emoji": "Sucesso🥳",
|
"success_emoji": "Sucesso🥳",
|
||||||
"success_message": "Agora você está logado com sucesso em sua conta do Spotify. Bom trabalho!",
|
"success_message": "Agora você está logado com sucesso em sua conta do Spotify. Bom trabalho!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "Adicionar Gêneros",
|
"add_genres": "Adicionar Gêneros",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
"number_of_tracks_generate": "Número de faixas a gerar",
|
"number_of_tracks_generate": "Número de faixas a gerar",
|
||||||
"acousticness": "Acústica",
|
"not_acoustic": "Acústica",
|
||||||
"danceability": "Dançabilidade",
|
"dance_ability": "Dançabilidade",
|
||||||
"energy": "Energia",
|
"energy": "Energia",
|
||||||
"instrumentalness": "Instrumentalidade",
|
"not_instrumental": "Instrumentalidade",
|
||||||
"liveness": "Vivacidade",
|
"liveness": "Vivacidade",
|
||||||
"loudness": "Volume",
|
"loudness": "Volume",
|
||||||
"speechiness": "Discurso",
|
"talkative": "Discurso",
|
||||||
"valence": "Valência",
|
"valence": "Valência",
|
||||||
"popularity": "Popularidade",
|
"popularity": "Popularidade",
|
||||||
"key": "Tonalidade",
|
"key": "Tonalidade",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "Ordenar por mais recente adicionado",
|
"sort_newest": "Ordenar por mais recente adicionado",
|
||||||
"sort_oldest": "Ordenar por mais antigo adicionado",
|
"sort_oldest": "Ordenar por mais antigo adicionado",
|
||||||
"sleep_timer": "Temporizador de Sono",
|
"sleep_timer": "Temporizador de Sono",
|
||||||
"mins": "{minutes} Minutos",
|
"minutes": "{minutes} Minutos",
|
||||||
"hours": "{hours} Horas",
|
"hours": "{hours} Horas",
|
||||||
"hour": "{hours} Hora",
|
"hour": "{hours} Hora",
|
||||||
"custom_hours": "Horas Personalizadas",
|
"custom_hours": "Horas Personalizadas",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "Fonte de Áudio",
|
"audio_source": "Fonte de Áudio",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"failed_to_encrypt": "Falha ao criptografar",
|
"failed_to_encrypt": "Falha ao criptografar",
|
||||||
"encryption_failed_warning": "O Spotube usa criptografia para armazenar seus dados com segurança, mas falhou em fazê-lo. Portanto, ele voltará para o armazenamento não seguro.\nSe você estiver usando o Linux, certifique-se de ter algum serviço secreto (gnome-keyring, kde-wallet, keepassxc, etc.) instalado",
|
"encryption_failed_warning": "O Spotube usa criptografia para armazenar seus dados com segurança, mas falhou em fazê-lo. Portanto, ele voltará para o armazenamento não seguro.\nSe você estiver usando o Linux, certifique-se de ter algum serviço secreto (gnome-keyring, kde-wallet, KeePassXC, etc.) instalado",
|
||||||
"querying_info": "Consultando informações...",
|
"querying_info": "Consultando informações...",
|
||||||
"piped_api_down": "A API do Piped está indisponível",
|
"piped_api_down": "A API do Piped está indisponível",
|
||||||
"piped_down_error_instructions": "A instância do Piped {pipedInstance} está atualmente indisponível\n\nMude a instância ou mude o 'Tipo de API' para a API oficial do YouTube\n\nCertifique-se de reiniciar o aplicativo após a alteração",
|
"piped_down_error_instructions": "A instância do Piped {pipedInstance} está atualmente indisponível\n\nMude a instância ou mude o 'Tipo de API' para a API oficial do YouTube\n\nCertifique-se de reiniciar o aplicativo após a alteração",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "Perfil do Usuário",
|
"user_profile": "Perfil do Usuário",
|
||||||
"count_plays": "{count} reproduzidos",
|
"count_plays": "{count} reproduzidos",
|
||||||
"streaming_fees_hypothetical": "*Calculado com base no pagamento por stream do Spotify\nque varia de $0.003 a $0.005. Isso é um cálculo hipotético\npara fornecer uma visão ao usuário sobre quanto eles\nteriam pago aos artistas se estivessem ouvindo\no seu som no Spotify.",
|
"streaming_fees_hypothetical": "*Calculado com base no pagamento por stream do Spotify\nque varia de $0.003 a $0.005. Isso é um cálculo hipotético\npara fornecer uma visão ao usuário sobre quanto eles\nteriam pago aos artistas se estivessem ouvindo\no seu som no Spotify.",
|
||||||
"count_mins": "{minutes} min",
|
"count_minutes": "{minutes} min",
|
||||||
"summary_minutes": "minutos",
|
"summary_minutes": "minutos",
|
||||||
"summary_listened_to_music": "Música ouvida",
|
"summary_listened_to_music": "Música ouvida",
|
||||||
"summary_songs": "faixas",
|
"summary_songs": "faixas",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "Músicas transmitidas",
|
"streamed_songs": "Músicas transmitidas",
|
||||||
"count_streams": "{count} streams",
|
"count_streams": "{count} streams",
|
||||||
"owned_by_you": "De sua propriedade",
|
"owned_by_you": "De sua propriedade",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} copiado para a área de transferência",
|
"copied_share_url_to_clipboard": "{shareUrl} copiado para a área de transferência",
|
||||||
"spotify_hipotetical_calculation": "*Isso é calculado com base no pagamento por stream do Spotify\nque varia de $0.003 a $0.005. Esta é uma cálculo hipotético\npara dar ao usuário uma visão de quanto teriam pago aos artistas\nse eles ouvissem suas músicas no Spotify.",
|
"spotify_hypothetical_calculation": "*Isso é calculado com base no pagamento por stream do Spotify\nque varia de $0.003 a $0.005. Esta é uma cálculo hipotético\npara dar ao usuário uma visão de quanto teriam pago aos artistas\nse eles ouvissem suas músicas no Spotify.",
|
||||||
"webview_not_found": "Webview não encontrado",
|
"webview_not_found": "Webview não encontrado",
|
||||||
"webview_not_found_description": "Nenhum runtime Webview está instalado no seu dispositivo.\nSe estiver instalado, certifique-se de que está no environment PATH\n\nApós a instalação, reinicie o aplicativo",
|
"webview_not_found_description": "Nenhum runtime Webview está instalado no seu dispositivo.\nSe estiver instalado, certifique-se de que está no environment PATH\n\nApós a instalação, reinicie o aplicativo",
|
||||||
"unsupported_platform": "Plataforma não suportada",
|
"unsupported_platform": "Plataforma não suportada",
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
"mini_player": "Мини-плеер",
|
"mini_player": "Мини-плеер",
|
||||||
"slide_to_seek": "Потяните для перемотки вперед или назад",
|
"slide_to_seek": "Потяните для перемотки вперед или назад",
|
||||||
"shuffle_playlist": "Перемешать плейлист",
|
"shuffle_playlist": "Перемешать плейлист",
|
||||||
"unshuffle_playlist": "Снять перемешивание плейлиста",
|
"not_shuffle_playlist": "Снять перемешивание плейлиста",
|
||||||
"previous_track": "Предыдущий трек",
|
"previous_track": "Предыдущий трек",
|
||||||
"next_track": "Следующий трек",
|
"next_track": "Следующий трек",
|
||||||
"pause_playback": "Пауза воспроизведения",
|
"pause_playback": "Пауза воспроизведения",
|
||||||
@ -178,7 +178,7 @@
|
|||||||
"first_go_to": "Сначала перейдите в",
|
"first_go_to": "Сначала перейдите в",
|
||||||
"login_if_not_logged_in": "и войдите или зарегистрируйтесь, если вы не вошли в систему",
|
"login_if_not_logged_in": "и войдите или зарегистрируйтесь, если вы не вошли в систему",
|
||||||
"step_2": "Шаг 2",
|
"step_2": "Шаг 2",
|
||||||
"step_2_steps": "1. После входа в систему нажмите F12 или щелкните правой кнопкой мыши > «Проверить», чтобы открыть инструменты разработчика браузера.\n2. Затем перейдите на вкладку \"Application\" (Chrome, Edge, Brave и т.д..) or \"Storage\" (Firefox, Palemoon и т.д..)\n3. Перейдите в раздел \"Cookies\", а затем в подраздел \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. После входа в систему нажмите F12 или щелкните правой кнопкой мыши > «Проверить», чтобы открыть инструменты разработчика браузера.\n2. Затем перейдите на вкладку \"Application\" (Chrome, Edge, Brave и т.д..) or \"Storage\" (Firefox, Pale Moon и т.д..)\n3. Перейдите в раздел \"Cookies\", а затем в подраздел \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Шаг 3",
|
"step_3": "Шаг 3",
|
||||||
"step_3_steps": "Скопируйте значение Cookie \"sp_dc\"",
|
"step_3_steps": "Скопируйте значение Cookie \"sp_dc\"",
|
||||||
"success_emoji": "Успешно🥳",
|
"success_emoji": "Успешно🥳",
|
||||||
@ -201,13 +201,13 @@
|
|||||||
"add_genres": "Добавить жанр",
|
"add_genres": "Добавить жанр",
|
||||||
"country": "Страна",
|
"country": "Страна",
|
||||||
"number_of_tracks_generate": "Количество треков для создания",
|
"number_of_tracks_generate": "Количество треков для создания",
|
||||||
"acousticness": "Акустичность",
|
"not_acoustic": "Акустичность",
|
||||||
"danceability": "Ритмичность",
|
"dance_ability": "Ритмичность",
|
||||||
"energy": "Энергичность",
|
"energy": "Энергичность",
|
||||||
"instrumentalness": "Инструментальность",
|
"not_instrumental": "Инструментальность",
|
||||||
"liveness": "Живость",
|
"liveness": "Живость",
|
||||||
"loudness": "Громкость",
|
"loudness": "Громкость",
|
||||||
"speechiness": "Речевой характер",
|
"talkative": "Речевой характер",
|
||||||
"valence": "Значимость",
|
"valence": "Значимость",
|
||||||
"popularity": "Популярность",
|
"popularity": "Популярность",
|
||||||
"key": "Ключ",
|
"key": "Ключ",
|
||||||
@ -246,7 +246,7 @@
|
|||||||
"sort_newest": "Сортировать по самым новым добавленным",
|
"sort_newest": "Сортировать по самым новым добавленным",
|
||||||
"sort_oldest": "Сортировать по самым старым добавленным",
|
"sort_oldest": "Сортировать по самым старым добавленным",
|
||||||
"sleep_timer": "Таймер сна",
|
"sleep_timer": "Таймер сна",
|
||||||
"mins": "{minutes} Минут",
|
"minutes": "{minutes} Минут",
|
||||||
"hours": "{hours} Часы",
|
"hours": "{hours} Часы",
|
||||||
"hour": "{hours} Час",
|
"hour": "{hours} Час",
|
||||||
"custom_hours": "Пользовательские часы",
|
"custom_hours": "Пользовательские часы",
|
||||||
@ -257,7 +257,7 @@
|
|||||||
"audio_source": "Источник аудио",
|
"audio_source": "Источник аудио",
|
||||||
"ok": "Ок",
|
"ok": "Ок",
|
||||||
"failed_to_encrypt": "Не удалось зашифровать",
|
"failed_to_encrypt": "Не удалось зашифровать",
|
||||||
"encryption_failed_warning": "Spotube использует шифрование для безопасного хранения ваших данных. Однако в этом случае произошла ошибка. Поэтому будет использовано небезопасное хранилище.\nЕсли вы используете Linux, убедитесь, что у вас установлен какой-либо инструмент для работы с секретами (gnome-keyring, kde-wallet, keepassxc и т.д.)",
|
"encryption_failed_warning": "Spotube использует шифрование для безопасного хранения ваших данных. Однако в этом случае произошла ошибка. Поэтому будет использовано небезопасное хранилище.\nЕсли вы используете Linux, убедитесь, что у вас установлен какой-либо инструмент для работы с секретами (gnome-keyring, kde-wallet, KeePassXC и т.д.)",
|
||||||
"querying_info": "Запрос информации...",
|
"querying_info": "Запрос информации...",
|
||||||
"piped_api_down": "Piped API не отвечает",
|
"piped_api_down": "Piped API не отвечает",
|
||||||
"piped_down_error_instructions": "Экземпляр Piped {pipedInstance} в данный момент недоступен.\n\nВы можете либо изменить экземпляр, либо переключиться на использование официального API YouTube.\n\nНе забудьте перезапустить приложение после внесенных изменений",
|
"piped_down_error_instructions": "Экземпляр Piped {pipedInstance} в данный момент недоступен.\n\nВы можете либо изменить экземпляр, либо переключиться на использование официального API YouTube.\n\nНе забудьте перезапустить приложение после внесенных изменений",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "Профиль пользователя",
|
"user_profile": "Профиль пользователя",
|
||||||
"count_plays": "{count} воспроизведений",
|
"count_plays": "{count} воспроизведений",
|
||||||
"streaming_fees_hypothetical": "*Рассчитано на основе выплат Spotify за стрим\nот $0.003 до $0.005. Это гипотетический\nрасчет, чтобы показать пользователю, сколько бы он\nзаплатил артистам, если бы слушал их песни на Spotify.",
|
"streaming_fees_hypothetical": "*Рассчитано на основе выплат Spotify за стрим\nот $0.003 до $0.005. Это гипотетический\nрасчет, чтобы показать пользователю, сколько бы он\nзаплатил артистам, если бы слушал их песни на Spotify.",
|
||||||
"count_mins": "{minutes} мин",
|
"count_minutes": "{minutes} мин",
|
||||||
"summary_minutes": "минуты",
|
"summary_minutes": "минуты",
|
||||||
"summary_listened_to_music": "Слушанная музыка",
|
"summary_listened_to_music": "Слушанная музыка",
|
||||||
"summary_songs": "песни",
|
"summary_songs": "песни",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "Стримленные песни",
|
"streamed_songs": "Стримленные песни",
|
||||||
"count_streams": "{count} стримов",
|
"count_streams": "{count} стримов",
|
||||||
"owned_by_you": "Ваша собственность",
|
"owned_by_you": "Ваша собственность",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} скопировано в буфер обмена",
|
"copied_share_url_to_clipboard": "{shareUrl} скопировано в буфер обмена",
|
||||||
"spotify_hipotetical_calculation": "*Это рассчитано на основе выплат Spotify за стрим\nот $0.003 до $0.005. Это гипотетический расчет,\nчтобы дать пользователю представление о том, сколько бы он\nзаплатил артистам, если бы слушал их песни на Spotify.",
|
"spotify_hypothetical_calculation": "*Это рассчитано на основе выплат Spotify за стрим\nот $0.003 до $0.005. Это гипотетический расчет,\nчтобы дать пользователю представление о том, сколько бы он\nзаплатил артистам, если бы слушал их песни на Spotify.",
|
||||||
"webview_not_found": "Webview не найден",
|
"webview_not_found": "Webview не найден",
|
||||||
"webview_not_found_description": "На вашем устройстве не установлена среда выполнения Webview.\nЕсли он установлен, убедитесь, что он находится в environment PATH\n\nПосле установки перезапустите приложение",
|
"webview_not_found_description": "На вашем устройстве не установлена среда выполнения Webview.\nЕсли он установлен, убедитесь, что он находится в environment PATH\n\nПосле установки перезапустите приложение",
|
||||||
"unsupported_platform": "Платформа не поддерживается",
|
"unsupported_platform": "Платформа не поддерживается",
|
||||||
|
@ -1,428 +1,428 @@
|
|||||||
{
|
{
|
||||||
"guest": "விருந்தினர்",
|
"guest": "விருந்தினர்",
|
||||||
"browse": "உலாவு",
|
"browse": "உலாவு",
|
||||||
"search": "தேடுக",
|
"search": "தேடுக",
|
||||||
"library": "நூலகம்",
|
"library": "நூலகம்",
|
||||||
"lyrics": "பாடல் வரிகள்",
|
"lyrics": "பாடல் வரிகள்",
|
||||||
"settings": "அமைப்புகள்",
|
"settings": "அமைப்புகள்",
|
||||||
"genre_categories_filter": "வகைகள் அல்லது பாணிகளை வடிகட்டுக...",
|
"genre_categories_filter": "வகைகள் அல்லது பாணிகளை வடிகட்டுக...",
|
||||||
"genre": "பாணி",
|
"genre": "பாணி",
|
||||||
"personalized": "தனிப்பயனாக்கப்பட்ட",
|
"personalized": "தனிப்பயனாக்கப்பட்ட",
|
||||||
"featured": "சிறப்பிடம் பெற்ற",
|
"featured": "சிறப்பிடம் பெற்ற",
|
||||||
"new_releases": "புதிய வெளியீடுகள்",
|
"new_releases": "புதிய வெளியீடுகள்",
|
||||||
"songs": "பாடல்கள்",
|
"songs": "பாடல்கள்",
|
||||||
"playing_track": "{track} இயங்குகிறது",
|
"playing_track": "{track} இயங்குகிறது",
|
||||||
"queue_clear_alert": "இது தற்போதைய வரிசையை அழிக்கும். {track_length} பாடல்கள் நீக்கப்படும்\nதொடர விரும்புகிறீர்களா?",
|
"queue_clear_alert": "இது தற்போதைய வரிசையை அழிக்கும். {track_length} பாடல்கள் நீக்கப்படும்\nதொடர விரும்புகிறீர்களா?",
|
||||||
"load_more": "மேலும் ஏற்றுக",
|
"load_more": "மேலும் ஏற்றுக",
|
||||||
"playlists": "பாடல் பட்டியல்கள்",
|
"playlists": "பாடல் பட்டியல்கள்",
|
||||||
"artists": "கலைஞர்கள்",
|
"artists": "கலைஞர்கள்",
|
||||||
"albums": "ஆல்பங்கள்",
|
"albums": "ஆல்பங்கள்",
|
||||||
"tracks": "பாடல்கள்",
|
"tracks": "பாடல்கள்",
|
||||||
"downloads": "பதிவிறக்கங்கள்",
|
"downloads": "பதிவிறக்கங்கள்",
|
||||||
"filter_playlists": "உங்கள் பாடல் பட்டியல்களை வடிகட்டுக...",
|
"filter_playlists": "உங்கள் பாடல் பட்டியல்களை வடிகட்டுக...",
|
||||||
"liked_tracks": "விரும்பிய பாடல்கள்",
|
"liked_tracks": "விரும்பிய பாடல்கள்",
|
||||||
"liked_tracks_description": "உங்கள் விரும்பிய பாடல்கள் அனைத்தும்",
|
"liked_tracks_description": "உங்கள் விரும்பிய பாடல்கள் அனைத்தும்",
|
||||||
"playlist": "பாடல் பட்டியல்",
|
"playlist": "பாடல் பட்டியல்",
|
||||||
"create_a_playlist": "பாடல் பட்டியலை உருவாக்குக",
|
"create_a_playlist": "பாடல் பட்டியலை உருவாக்குக",
|
||||||
"update_playlist": "பாடல் பட்டியலைப் புதுப்பிக்க",
|
"update_playlist": "பாடல் பட்டியலைப் புதுப்பிக்க",
|
||||||
"create": "உருவாக்கு",
|
"create": "உருவாக்கு",
|
||||||
"cancel": "ரத்து செய்",
|
"cancel": "ரத்து செய்",
|
||||||
"update": "புதுப்பி",
|
"update": "புதுப்பி",
|
||||||
"playlist_name": "பாடல் பட்டியல் பெயர்",
|
"playlist_name": "பாடல் பட்டியல் பெயர்",
|
||||||
"name_of_playlist": "பாடல் பட்டியலின் பெயர்",
|
"name_of_playlist": "பாடல் பட்டியலின் பெயர்",
|
||||||
"description": "விளக்கம்",
|
"description": "விளக்கம்",
|
||||||
"public": "பொது",
|
"public": "பொது",
|
||||||
"collaborative": "கூட்டு",
|
"collaborative": "கூட்டு",
|
||||||
"search_local_tracks": "உள்ளூர் பாடல்களைத் தேடுக...",
|
"search_local_tracks": "உள்ளூர் பாடல்களைத் தேடுக...",
|
||||||
"play": "இயக்கு",
|
"play": "இயக்கு",
|
||||||
"delete": "அழி",
|
"delete": "அழி",
|
||||||
"none": "எதுவுமில்லை",
|
"none": "எதுவுமில்லை",
|
||||||
"sort_a_z": "A-Z வரிசைப்படுத்து",
|
"sort_a_z": "A-Z வரிசைப்படுத்து",
|
||||||
"sort_z_a": "Z-A வரிசைப்படுத்து",
|
"sort_z_a": "Z-A வரிசைப்படுத்து",
|
||||||
"sort_artist": "கலைஞர் மூலம் வரிசைப்படுத்து",
|
"sort_artist": "கலைஞர் மூலம் வரிசைப்படுத்து",
|
||||||
"sort_album": "ஆல்பம் மூலம் வரிசைப்படுத்து",
|
"sort_album": "ஆல்பம் மூலம் வரிசைப்படுத்து",
|
||||||
"sort_duration": "கால அளவு மூலம் வரிசைப்படுத்து",
|
"sort_duration": "கால அளவு மூலம் வரிசைப்படுத்து",
|
||||||
"sort_tracks": "பாடல்களை வரிசைப்படுத்து",
|
"sort_tracks": "பாடல்களை வரிசைப்படுத்து",
|
||||||
"currently_downloading": "தற்போது பதிவிறக்குகிறது ({tracks_length})",
|
"currently_downloading": "தற்போது பதிவிறக்குகிறது ({tracks_length})",
|
||||||
"cancel_all": "அனைத்தையும் ரத்து செய்",
|
"cancel_all": "அனைத்தையும் ரத்து செய்",
|
||||||
"filter_artist": "கலைஞர்களை வடிகட்டுக...",
|
"filter_artist": "கலைஞர்களை வடிகட்டுக...",
|
||||||
"followers": "{followers} பின்தொடர்பவர்கள்",
|
"followers": "{followers} பின்தொடர்பவர்கள்",
|
||||||
"add_artist_to_blacklist": "கலைஞரை தடைப்பட்டியலில் சேர்க்க",
|
"add_artist_to_blacklist": "கலைஞரை தடைப்பட்டியலில் சேர்க்க",
|
||||||
"top_tracks": "சிறந்த பாடல்கள்",
|
"top_tracks": "சிறந்த பாடல்கள்",
|
||||||
"fans_also_like": "ரசிகர்கள் விரும்புவது",
|
"fans_also_like": "ரசிகர்கள் விரும்புவது",
|
||||||
"loading": "ஏற்றுகிறது...",
|
"loading": "ஏற்றுகிறது...",
|
||||||
"artist": "கலைஞர்",
|
"artist": "கலைஞர்",
|
||||||
"blacklisted": "தடைப்பட்டியலில் உள்ளது",
|
"blacklisted": "தடைப்பட்டியலில் உள்ளது",
|
||||||
"following": "பின்தொடர்கிறது",
|
"following": "பின்தொடர்கிறது",
|
||||||
"follow": "பின்தொடர்",
|
"follow": "பின்தொடர்",
|
||||||
"artist_url_copied": "கலைஞர் URL கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது",
|
"artist_url_copied": "கலைஞர் URL கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது",
|
||||||
"added_to_queue": "{tracks} பாடல்கள் வரிசையில் சேர்க்கப்பட்டன",
|
"added_to_queue": "{tracks} பாடல்கள் வரிசையில் சேர்க்கப்பட்டன",
|
||||||
"filter_albums": "ஆல்பங்களை வடிகட்டுக...",
|
"filter_albums": "ஆல்பங்களை வடிகட்டுக...",
|
||||||
"synced": "ஒத்திசைக்கப்பட்டது",
|
"synced": "ஒத்திசைக்கப்பட்டது",
|
||||||
"plain": "சாதாரண",
|
"plain": "சாதாரண",
|
||||||
"shuffle": "கலக்கு",
|
"shuffle": "கலக்கு",
|
||||||
"search_tracks": "பாடல்களைத் தேடுக...",
|
"search_tracks": "பாடல்களைத் தேடுக...",
|
||||||
"released": "வெளியிடப்பட்டது",
|
"released": "வெளியிடப்பட்டது",
|
||||||
"error": "பிழை {error}",
|
"error": "பிழை {error}",
|
||||||
"title": "தலைப்பு",
|
"title": "தலைப்பு",
|
||||||
"time": "நேரம்",
|
"time": "நேரம்",
|
||||||
"more_actions": "மேலும் செயல்கள்",
|
"more_actions": "மேலும் செயல்கள்",
|
||||||
"download_count": "பதிவிறக்கு ({count})",
|
"download_count": "பதிவிறக்கு ({count})",
|
||||||
"add_count_to_playlist": "({count}) பாடல் பட்டியலில் சேர்",
|
"add_count_to_playlist": "({count}) பாடல் பட்டியலில் சேர்",
|
||||||
"add_count_to_queue": "({count}) வரிசையில் சேர்",
|
"add_count_to_queue": "({count}) வரிசையில் சேர்",
|
||||||
"play_count_next": "({count}) அடுத்து இயக்கு",
|
"play_count_next": "({count}) அடுத்து இயக்கு",
|
||||||
"album": "ஆல்பம்",
|
"album": "ஆல்பம்",
|
||||||
"copied_to_clipboard": "{data} கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது",
|
"copied_to_clipboard": "{data} கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது",
|
||||||
"add_to_following_playlists": "{track} பின்வரும் பாடல் பட்டியல்களில் சேர்",
|
"add_to_following_playlists": "{track} பின்வரும் பாடல் பட்டியல்களில் சேர்",
|
||||||
"add": "சேர்",
|
"add": "சேர்",
|
||||||
"added_track_to_queue": "{track} வரிசையில் சேர்க்கப்பட்டது",
|
"added_track_to_queue": "{track} வரிசையில் சேர்க்கப்பட்டது",
|
||||||
"add_to_queue": "வரிசையில் சேர்",
|
"add_to_queue": "வரிசையில் சேர்",
|
||||||
"track_will_play_next": "{track} அடுத்து இயக்கப்படும்",
|
"track_will_play_next": "{track} அடுத்து இயக்கப்படும்",
|
||||||
"play_next": "அடுத்து இயக்கு",
|
"play_next": "அடுத்து இயக்கு",
|
||||||
"removed_track_from_queue": "{track} வரிசையிலிருந்து நீக்கப்பட்டது",
|
"removed_track_from_queue": "{track} வரிசையிலிருந்து நீக்கப்பட்டது",
|
||||||
"remove_from_queue": "வரிசையிலிருந்து நீக்கு",
|
"remove_from_queue": "வரிசையிலிருந்து நீக்கு",
|
||||||
"remove_from_favorites": "பிடித்தவையிலிருந்து நீக்கு",
|
"remove_from_favorites": "பிடித்தவையிலிருந்து நீக்கு",
|
||||||
"save_as_favorite": "பிடித்தவையாக சேமி",
|
"save_as_favorite": "பிடித்தவையாக சேமி",
|
||||||
"add_to_playlist": "பாடல் பட்டியலில் சேர்",
|
"add_to_playlist": "பாடல் பட்டியலில் சேர்",
|
||||||
"remove_from_playlist": "பாடல் பட்டியலிலிருந்து நீக்கு",
|
"remove_from_playlist": "பாடல் பட்டியலிலிருந்து நீக்கு",
|
||||||
"add_to_blacklist": "தடைப்பட்டியலில் சேர்",
|
"add_to_blacklist": "தடைப்பட்டியலில் சேர்",
|
||||||
"remove_from_blacklist": "தடைப்பட்டியலிலிருந்து நீக்கு",
|
"remove_from_blacklist": "தடைப்பட்டியலிலிருந்து நீக்கு",
|
||||||
"share": "பகிர்",
|
"share": "பகிர்",
|
||||||
"mini_player": "சிறிய இயக்கி",
|
"mini_player": "சிறிய இயக்கி",
|
||||||
"slide_to_seek": "முன்னோக்கி அல்லது பின்னோக்கி செல்ல சறுக்கவும்",
|
"slide_to_seek": "முன்னோக்கி அல்லது பின்னோக்கி செல்ல சறுக்கவும்",
|
||||||
"shuffle_playlist": "பாடல் பட்டியலை கலக்கு",
|
"shuffle_playlist": "பாடல் பட்டியலை கலக்கு",
|
||||||
"unshuffle_playlist": "பாடல் பட்டியலை கலக்காதே",
|
"not_shuffle_playlist": "பாடல் பட்டியலை கலக்காதே",
|
||||||
"previous_track": "முந்தைய பாடல்",
|
"previous_track": "முந்தைய பாடல்",
|
||||||
"next_track": "அடுத்த பாடல்",
|
"next_track": "அடுத்த பாடல்",
|
||||||
"pause_playback": "இயக்கத்தை நிறுத்து",
|
"pause_playback": "இயக்கத்தை நிறுத்து",
|
||||||
"resume_playback": "இயக்கத்தை தொடர்",
|
"resume_playback": "இயக்கத்தை தொடர்",
|
||||||
"loop_track": "பாடலை சுழற்று",
|
"loop_track": "பாடலை சுழற்று",
|
||||||
"no_loop": "சுழற்சி இல்லை",
|
"no_loop": "சுழற்சி இல்லை",
|
||||||
"repeat_playlist": "பாடல் பட்டியலை மீண்டும் இயக்கு",
|
"repeat_playlist": "பாடல் பட்டியலை மீண்டும் இயக்கு",
|
||||||
"queue": "வரிசை",
|
"queue": "வரிசை",
|
||||||
"alternative_track_sources": "மாற்று பாடல் மூலங்கள்",
|
"alternative_track_sources": "மாற்று பாடல் மூலங்கள்",
|
||||||
"download_track": "பாடலைப் பதிவிறக்கு",
|
"download_track": "பாடலைப் பதிவிறக்கு",
|
||||||
"tracks_in_queue": "வரிசையில் {tracks} பாடல்கள்",
|
"tracks_in_queue": "வரிசையில் {tracks} பாடல்கள்",
|
||||||
"clear_all": "அனைத்தையும் அழி",
|
"clear_all": "அனைத்தையும் அழி",
|
||||||
"show_hide_ui_on_hover": "மேலே வரும்போது UI ஐக் காட்டு/மறை",
|
"show_hide_ui_on_hover": "மேலே வரும்போது UI ஐக் காட்டு/மறை",
|
||||||
"always_on_top": "எப்போதும் மேலே",
|
"always_on_top": "எப்போதும் மேலே",
|
||||||
"exit_mini_player": "சிறிய இயக்கியிலிருந்து வெளியேறு",
|
"exit_mini_player": "சிறிய இயக்கியிலிருந்து வெளியேறு",
|
||||||
"download_location": "பதிவிறக்க இடம்",
|
"download_location": "பதிவிறக்க இடம்",
|
||||||
"local_library": "உள்ளூர் நூலகம்",
|
"local_library": "உள்ளூர் நூலகம்",
|
||||||
"add_library_location": "நூலகத்தில் சேர்",
|
"add_library_location": "நூலகத்தில் சேர்",
|
||||||
"remove_library_location": "நூலகத்திலிருந்து நீக்கு",
|
"remove_library_location": "நூலகத்திலிருந்து நீக்கு",
|
||||||
"account": "கணக்கு",
|
"account": "கணக்கு",
|
||||||
"login_with_spotify": "உங்கள் Spotify கணக்கில் உள்நுழைக",
|
"login_with_spotify": "உங்கள் Spotify கணக்கில் உள்நுழைக",
|
||||||
"connect_with_spotify": "Spotify உடன் இணைக்கவும்",
|
"connect_with_spotify": "Spotify உடன் இணைக்கவும்",
|
||||||
"logout": "வெளியேறு",
|
"logout": "வெளியேறு",
|
||||||
"logout_of_this_account": "இந்த கணக்கிலிருந்து வெளியேறு",
|
"logout_of_this_account": "இந்த கணக்கிலிருந்து வெளியேறு",
|
||||||
"language_region": "மொழி & பிராந்தியம்",
|
"language_region": "மொழி & பிராந்தியம்",
|
||||||
"language": "மொழி",
|
"language": "மொழி",
|
||||||
"system_default": "கணினி இயல்புநிலை",
|
"system_default": "கணினி இயல்புநிலை",
|
||||||
"market_place_region": "சந்தை பிராந்தியம்",
|
"market_place_region": "சந்தை பிராந்தியம்",
|
||||||
"recommendation_country": "பரிந்துரை நாடு",
|
"recommendation_country": "பரிந்துரை நாடு",
|
||||||
"appearance": "தோற்றம்",
|
"appearance": "தோற்றம்",
|
||||||
"layout_mode": "அமைப்பு முறை",
|
"layout_mode": "அமைப்பு முறை",
|
||||||
"override_layout_settings": "தளவமைப்பு அமைப்புகளை மாற்றியமை",
|
"override_layout_settings": "தளவமைப்பு அமைப்புகளை மாற்றியமை",
|
||||||
"adaptive": "தகவமைப்பு",
|
"adaptive": "தகவமைப்பு",
|
||||||
"compact": "சுருக்கமான",
|
"compact": "சுருக்கமான",
|
||||||
"extended": "விரிவான",
|
"extended": "விரிவான",
|
||||||
"theme": "தீம்",
|
"theme": "தீம்",
|
||||||
"dark": "இருள்",
|
"dark": "இருள்",
|
||||||
"light": "வெளிர்",
|
"light": "வெளிர்",
|
||||||
"system": "கணினி வழி",
|
"system": "கணினி வழி",
|
||||||
"accent_color": "அழுத்த நிறம்",
|
"accent_color": "அழுத்த நிறம்",
|
||||||
"sync_album_color": "ஆல்பம் நிறத்தை ஒத்திசை",
|
"sync_album_color": "ஆல்பம் நிறத்தை ஒத்திசை",
|
||||||
"sync_album_color_description": "ஆல்பம் படத்தின் முக்கிய நிறத்தை அழுத்த நிறமாகப் பயன்படுத்துகிறது",
|
"sync_album_color_description": "ஆல்பம் படத்தின் முக்கிய நிறத்தை அழுத்த நிறமாகப் பயன்படுத்துகிறது",
|
||||||
"playback": "பின்னணி",
|
"playback": "பின்னணி",
|
||||||
"audio_quality": "ஒலி தரம்",
|
"audio_quality": "ஒலி தரம்",
|
||||||
"high": "உயர்",
|
"high": "உயர்",
|
||||||
"low": "குறைந்த",
|
"low": "குறைந்த",
|
||||||
"pre_download_play": "முன்பதிவிறக்கம் மற்றும் இயக்கம்",
|
"pre_download_play": "முன்பதிவிறக்கம் மற்றும் இயக்கம்",
|
||||||
"pre_download_play_description": "ஒலியை ஸ்ட்ரீம் செய்வதற்குப் பதிலாக, பைட்டுகளைப் பதிவிறக்கி இயக்கவும் (அதிக பேண்ட்விட்த் பயனர்களுக்கு பரிந்துரைக்கப்படுகிறது)",
|
"pre_download_play_description": "ஒலியை ஸ்ட்ரீம் செய்வதற்குப் பதிலாக, பைட்டுகளைப் பதிவிறக்கி இயக்கவும் (அதிக பேண்ட்விட்த் பயனர்களுக்கு பரிந்துரைக்கப்படுகிறது)",
|
||||||
"skip_non_music": "இசையல்லாத பகுதிகளைத் தவிர் (SponsorBlock)",
|
"skip_non_music": "இசையல்லாத பகுதிகளைத் தவிர் (SponsorBlock)",
|
||||||
"blacklist_description": "தடைசெய்யப்பட்ட பாடல்கள் மற்றும் கலைஞர்கள்",
|
"blacklist_description": "தடைசெய்யப்பட்ட பாடல்கள் மற்றும் கலைஞர்கள்",
|
||||||
"wait_for_download_to_finish": "தற்போதைய பதிவிறக்கம் முடியும் வரை காத்திருக்கவும்",
|
"wait_for_download_to_finish": "தற்போதைய பதிவிறக்கம் முடியும் வரை காத்திருக்கவும்",
|
||||||
"desktop": "கணினி",
|
"desktop": "கணினி",
|
||||||
"close_behavior": "மூடும் நடத்தை",
|
"close_behavior": "மூடும் நடத்தை",
|
||||||
"close": "மூடு",
|
"close": "மூடு",
|
||||||
"minimize_to_tray": "ட்ரேயை குறைக்கவும்",
|
"minimize_to_tray": "ட்ரேயை குறைக்கவும்",
|
||||||
"show_tray_icon": "ட்ரே ஐகானைக் காட்டு",
|
"show_tray_icon": "ட்ரே ஐகானைக் காட்டு",
|
||||||
"about": "பற்றி",
|
"about": "பற்றி",
|
||||||
"u_love_spotube": "நீங்கள் Spotube ஐ நேசிக்கிறீர்கள் என்பது எங்களுக்குத் தெரியும்",
|
"u_love_spotube": "நீங்கள் Spotube ஐ நேசிக்கிறீர்கள் என்பது எங்களுக்குத் தெரியும்",
|
||||||
"check_for_updates": "புதுப்பிப்புகளைச் சரிபார்",
|
"check_for_updates": "புதுப்பிப்புகளைச் சரிபார்",
|
||||||
"about_spotube": "Spotube பற்றி",
|
"about_spotube": "Spotube பற்றி",
|
||||||
"blacklist": "தடைப்பட்டியல்",
|
"blacklist": "தடைப்பட்டியல்",
|
||||||
"please_sponsor": "தயவுசெய்து ஆதரவு/நன்கொடை அளியுங்கள்",
|
"please_sponsor": "தயவுசெய்து ஆதரவு/நன்கொடை அளியுங்கள்",
|
||||||
"spotube_description": "Spotube, ஒரு லேசான, பல தளங்களில் இயங்கும், அனைவருக்கும் இலவசமான spotify கிளையன்ட்",
|
"spotube_description": "Spotube, ஒரு லேசான, பல தளங்களில் இயங்கும், அனைவருக்கும் இலவசமான spotify கிளையன்ட்",
|
||||||
"version": "பதிப்பு",
|
"version": "பதிப்பு",
|
||||||
"build_number": "கட்டமைப்பு எண்",
|
"build_number": "கட்டமைப்பு எண்",
|
||||||
"founder": "நிறுவனர்",
|
"founder": "நிறுவனர்",
|
||||||
"repository": "களஞ்சியம்",
|
"repository": "களஞ்சியம்",
|
||||||
"bug_issues": "பிழை_சிக்கல்கள்",
|
"bug_issues": "பிழை_சிக்கல்கள்",
|
||||||
"made_with": "வங்காளதேசத்திலிருந்து🇧🇩 ❤️ உருவாக்கப்பட்டது",
|
"made_with": "வங்காளதேசத்திலிருந்து🇧🇩 ❤️ உருவாக்கப்பட்டது",
|
||||||
"kingkor_roy_tirtho": "கிங்கர் ராய் திர்தோ",
|
"kingkor_roy_tirtho": "கிங்கர் ராய் திர்தோ",
|
||||||
"copyright": "© 2021-{current_year} கிங்கர் ராய் திர்தோ",
|
"copyright": "© 2021-{current_year} கிங்கர் ராய் திர்தோ",
|
||||||
"license": "உரிமம்",
|
"license": "உரிமம்",
|
||||||
"add_spotify_credentials": "தொடங்குவதற்கு உங்கள் spotify சான்றுகளைச் சேர்க்கவும்",
|
"add_spotify_credentials": "தொடங்குவதற்கு உங்கள் spotify சான்றுகளைச் சேர்க்கவும்",
|
||||||
"credentials_will_not_be_shared_disclaimer": "கவலைப்பட வேண்டாம், உங்கள் சான்றுகள் எதுவும் சேகரிக்கப்படாது அல்லது யாருடனும் பகிரப்படாது",
|
"credentials_will_not_be_shared_disclaimer": "கவலைப்பட வேண்டாம், உங்கள் சான்றுகள் எதுவும் சேகரிக்கப்படாது அல்லது யாருடனும் பகிரப்படாது",
|
||||||
"know_how_to_login": "இதை எப்படி செய்வது என்று தெரியவில்லையா?",
|
"know_how_to_login": "இதை எப்படி செய்வது என்று தெரியவில்லையா?",
|
||||||
"follow_step_by_step_guide": "படிப்படியான வழிகாட்டியைப் பின்பற்றவும்",
|
"follow_step_by_step_guide": "படிப்படியான வழிகாட்டியைப் பின்பற்றவும்",
|
||||||
"spotify_cookie": "Spotify {name} நட்புநிரல்",
|
"spotify_cookie": "Spotify {name} நட்புநிரல்",
|
||||||
"cookie_name_cookie": "{name} நட்புநிரல்",
|
"cookie_name_cookie": "{name} நட்புநிரல்",
|
||||||
"fill_in_all_fields": "அனைத்து களங்களையும் நிரப்பவும்",
|
"fill_in_all_fields": "அனைத்து களங்களையும் நிரப்பவும்",
|
||||||
"submit": "சமர்ப்பி",
|
"submit": "சமர்ப்பி",
|
||||||
"exit": "வெளியேறு",
|
"exit": "வெளியேறு",
|
||||||
"previous": "முந்தைய",
|
"previous": "முந்தைய",
|
||||||
"next": "அடுத்து",
|
"next": "அடுத்து",
|
||||||
"done": "முடிந்தது",
|
"done": "முடிந்தது",
|
||||||
"step_1": "முதல் படி",
|
"step_1": "முதல் படி",
|
||||||
"first_go_to": "முதலில், செல்லவேண்டியது",
|
"first_go_to": "முதலில், செல்லவேண்டியது",
|
||||||
"login_if_not_logged_in": "நீங்கள் உள்நுழையவில்லை என்றால் உள்நுழைக/பதிவுசெய்க",
|
"login_if_not_logged_in": "நீங்கள் உள்நுழையவில்லை என்றால் உள்நுழைக/பதிவுசெய்க",
|
||||||
"step_2": "இரண்டாம் படி",
|
"step_2": "இரண்டாம் படி",
|
||||||
"step_2_steps": "1. நீங்கள் உள்நுழைந்தவுடன், F12 ஐ அழுத்தவும் அல்லது வலது கிளிக் செய்து > ஆய்வு செய்யவும் உலாவி டெவ்டூல்களைத் திறக்கவும்.\n2. பின்னர் \"பயன்பாடு\" தாவலுக்குச் செல்லவும் (Chrome, Edge, Brave போன்றவை) அல்லது \"சேமிப்பகம்\" தாவல் (Firefox, Palemoon போன்றவை)\n3. \"குக்கிகள்\" பிரிவுக்குச் சென்று பின்னர் \"https://accounts.spotify.com\" பிரிவுக்குச் செல்லவும்",
|
"step_2_steps": "1. நீங்கள் உள்நுழைந்தவுடன், F12 ஐ அழுத்தவும் அல்லது வலது கிளிக் செய்து > ஆய்வு செய்யவும் உலாவி டெவ்டூல்களைத் திறக்கவும்.\n2. பின்னர் \"பயன்பாடு\" தாவலுக்குச் செல்லவும் (Chrome, Edge, Brave போன்றவை) அல்லது \"சேமிப்பகம்\" தாவல் (Firefox, Pale Moon போன்றவை)\n3. \"குக்கிகள்\" பிரிவுக்குச் சென்று பின்னர் \"https://accounts.spotify.com\" பிரிவுக்குச் செல்லவும்",
|
||||||
"step_3": "மூன்றாம் படி",
|
"step_3": "மூன்றாம் படி",
|
||||||
"step_3_steps": "\"sp_dc\" நட்புநிரலின் மதிப்பை நகலெடுக்கவும்",
|
"step_3_steps": "\"sp_dc\" நட்புநிரலின் மதிப்பை நகலெடுக்கவும்",
|
||||||
"success_emoji": "வெற்றி🥳",
|
"success_emoji": "வெற்றி🥳",
|
||||||
"success_message": "இப்போது நீங்கள் உங்கள் Spotify கணக்கில் வெற்றிகரமாக உள்நுழைந்துள்ளீர்கள். நல்லது, நண்பரே!",
|
"success_message": "இப்போது நீங்கள் உங்கள் Spotify கணக்கில் வெற்றிகரமாக உள்நுழைந்துள்ளீர்கள். நல்லது, நண்பரே!",
|
||||||
"step_4": "நான்காம் படி",
|
"step_4": "நான்காம் படி",
|
||||||
"step_4_steps": "நகலெடுக்கப்பட்ட \"sp_dc\" மதிப்பை ஒட்டவும்",
|
"step_4_steps": "நகலெடுக்கப்பட்ட \"sp_dc\" மதிப்பை ஒட்டவும்",
|
||||||
"something_went_wrong": "ஏதோ தவறு நடந்துவிட்டது",
|
"something_went_wrong": "ஏதோ தவறு நடந்துவிட்டது",
|
||||||
"piped_instance": "Piped சேவையகம் நிகழ்வு",
|
"piped_instance": "Piped சேவையகம் நிகழ்வு",
|
||||||
"piped_description": "பாடல் பொருத்தத்திற்குப் பயன்படுத்த வேண்டிய Piped சேவையகம் நிகழ்வு",
|
"piped_description": "பாடல் பொருத்தத்திற்குப் பயன்படுத்த வேண்டிய Piped சேவையகம் நிகழ்வு",
|
||||||
"piped_warning": "அவற்றில் சில நன்றாக வேலை செய்யாமல் இருக்கலாம். எனவே உங்கள் சொந்த ஆபத்தில் பயன்படுத்தவும்",
|
"piped_warning": "அவற்றில் சில நன்றாக வேலை செய்யாமல் இருக்கலாம். எனவே உங்கள் சொந்த ஆபத்தில் பயன்படுத்தவும்",
|
||||||
"invidious_instance": "Invidious சேவையக நிகழ்வு",
|
"invidious_instance": "Invidious சேவையக நிகழ்வு",
|
||||||
"invidious_description": "பாடல் பொருத்தத்திற்குப் பயன்படுத்த வேண்டிய Invidious சேவையக நிகழ்வு",
|
"invidious_description": "பாடல் பொருத்தத்திற்குப் பயன்படுத்த வேண்டிய Invidious சேவையக நிகழ்வு",
|
||||||
"invidious_warning": "அவற்றில் சில நன்றாக வேலை செய்யாமல் இருக்கலாம். எனவே உங்கள் சொந்த ஆபத்தில் பயன்படுத்தவும்",
|
"invidious_warning": "அவற்றில் சில நன்றாக வேலை செய்யாமல் இருக்கலாம். எனவே உங்கள் சொந்த ஆபத்தில் பயன்படுத்தவும்",
|
||||||
"generate": "உருவாக்கு",
|
"generate": "உருவாக்கு",
|
||||||
"track_exists": "பாடல் {track} ஏற்கனவே உள்ளது",
|
"track_exists": "பாடல் {track} ஏற்கனவே உள்ளது",
|
||||||
"replace_downloaded_tracks": "பதிவிறக்கம் செய்யப்பட்ட அனைத்து பாடல்களையும் மாற்றவும்",
|
"replace_downloaded_tracks": "பதிவிறக்கம் செய்யப்பட்ட அனைத்து பாடல்களையும் மாற்றவும்",
|
||||||
"skip_download_tracks": "பதிவிறக்கம் செய்யப்பட்ட அனைத்து பாடல்களையும் தவிர்க்கவும்",
|
"skip_download_tracks": "பதிவிறக்கம் செய்யப்பட்ட அனைத்து பாடல்களையும் தவிர்க்கவும்",
|
||||||
"do_you_want_to_replace": "ஏற்கனவே உள்ள பாடலை மாற்ற விரும்புகிறீர்களா?",
|
"do_you_want_to_replace": "ஏற்கனவே உள்ள பாடலை மாற்ற விரும்புகிறீர்களா?",
|
||||||
"replace": "மாற்று",
|
"replace": "மாற்று",
|
||||||
"skip": "தவிர்",
|
"skip": "தவிர்",
|
||||||
"select_up_to_count_type": "{count} {type} வரை தேர்ந்தெடுக்கவும்",
|
"select_up_to_count_type": "{count} {type} வரை தேர்ந்தெடுக்கவும்",
|
||||||
"select_genres": "வகைகளைத் தேர்ந்தெடுக்கவும்",
|
"select_genres": "வகைகளைத் தேர்ந்தெடுக்கவும்",
|
||||||
"add_genres": "வகைகளைச் சேர்க்கவும்",
|
"add_genres": "வகைகளைச் சேர்க்கவும்",
|
||||||
"country": "நாடு",
|
"country": "நாடு",
|
||||||
"number_of_tracks_generate": "உருவாக்க வேண்டிய பாடல்களின் எண்ணிக்கை",
|
"number_of_tracks_generate": "உருவாக்க வேண்டிய பாடல்களின் எண்ணிக்கை",
|
||||||
"acousticness": "அகவுஸ்டிக்னெஸ்",
|
"not_acoustic": "அகவுஸ்டிக்னெஸ்",
|
||||||
"danceability": "நடனத்தன்மை",
|
"dance_ability": "நடனத்தன்மை",
|
||||||
"energy": "ஆற்றல்",
|
"energy": "ஆற்றல்",
|
||||||
"instrumentalness": "கருவித்தன்மை",
|
"not_instrumental": "கருவித்தன்மை",
|
||||||
"liveness": "உயிர்ப்புத்தன்மை",
|
"liveness": "உயிர்ப்புத்தன்மை",
|
||||||
"loudness": "ஒலி அளவு",
|
"loudness": "ஒலி அளவு",
|
||||||
"speechiness": "பேச்சுத்தன்மை",
|
"talkative": "பேச்சுத்தன்மை",
|
||||||
"valence": "உணர்வு",
|
"valence": "உணர்வு",
|
||||||
"popularity": "பிரபலம்",
|
"popularity": "பிரபலம்",
|
||||||
"key": "இசை குறிப்பு",
|
"key": "இசை குறிப்பு",
|
||||||
"duration": "கால அளவு (வினாடிகள்)",
|
"duration": "கால அளவு (வினாடிகள்)",
|
||||||
"tempo": "வேகம் (BPM)",
|
"tempo": "வேகம் (BPM)",
|
||||||
"mode": "முறை",
|
"mode": "முறை",
|
||||||
"time_signature": "நேர கையொப்பம்",
|
"time_signature": "நேர கையொப்பம்",
|
||||||
"short": "குறுகிய",
|
"short": "குறுகிய",
|
||||||
"medium": "நடுத்தர",
|
"medium": "நடுத்தர",
|
||||||
"long": "நீண்ட",
|
"long": "நீண்ட",
|
||||||
"min": "குறைந்தபட்சம்",
|
"min": "குறைந்தபட்சம்",
|
||||||
"max": "அதிகபட்சம்",
|
"max": "அதிகபட்சம்",
|
||||||
"target": "இலக்கு",
|
"target": "இலக்கு",
|
||||||
"moderate": "மிதமான",
|
"moderate": "மிதமான",
|
||||||
"deselect_all": "அனைத்தையும் தேர்வுநீக்கு",
|
"deselect_all": "அனைத்தையும் தேர்வுநீக்கு",
|
||||||
"select_all": "அனைத்தையும் தேர்ந்தெடு",
|
"select_all": "அனைத்தையும் தேர்ந்தெடு",
|
||||||
"are_you_sure": "உறுதியாக இருக்கிறீர்களா?",
|
"are_you_sure": "உறுதியாக இருக்கிறீர்களா?",
|
||||||
"generating_playlist": "உங்கள் தனிப்பயன்பாட்டிற்கான பாடல் பட்டியலை உருவாக்குகிறது...",
|
"generating_playlist": "உங்கள் தனிப்பயன்பாட்டிற்கான பாடல் பட்டியலை உருவாக்குகிறது...",
|
||||||
"selected_count_tracks": "{count} பாடல்கள் தேர்ந்தெடுக்கப்பட்டன",
|
"selected_count_tracks": "{count} பாடல்கள் தேர்ந்தெடுக்கப்பட்டன",
|
||||||
"download_warning": "நீங்கள் அனைத்து பாடல்களையும் மொத்தமாக பதிவிறக்கினால், நீங்கள் தெளிவாக இசையைத் திருடுகிறீர்கள் மற்றும் இசையின் படைப்பாற்றல் சமூகத்திற்கு சேதம் விளைவிக்கிறீர்கள். நீங்கள் இதை அறிந்திருக்கிறீர்கள் என்று நம்புகிறேன். எப்போதும், கலைஞரின் கடின உழைப்பை மதித்து ஆதரிக்க முயற்சி செய்யுங்கள்",
|
"download_warning": "நீங்கள் அனைத்து பாடல்களையும் மொத்தமாக பதிவிறக்கினால், நீங்கள் தெளிவாக இசையைத் திருடுகிறீர்கள் மற்றும் இசையின் படைப்பாற்றல் சமூகத்திற்கு சேதம் விளைவிக்கிறீர்கள். நீங்கள் இதை அறிந்திருக்கிறீர்கள் என்று நம்புகிறேன். எப்போதும், கலைஞரின் கடின உழைப்பை மதித்து ஆதரிக்க முயற்சி செய்யுங்கள்",
|
||||||
"download_ip_ban_warning": "மேலும், அதிகப்படியான பதிவிறக்க கோரிக்கைகள் காரணமாக உங்கள் IP YouTube இல் தடைசெய்யப்படலாம். IP தடை என்பது குறைந்தது 2-3 மாதங்களுக்கு அந்த IP சாதனத்திலிருந்து YouTube ஐப் பயன்படுத்த முடியாது (நீங்கள் உள்நுழைந்திருந்தாலும் கூட). இது ஒருபோதும் நடந்தால் Spotube பொறுப்பேற்காது",
|
"download_ip_ban_warning": "மேலும், அதிகப்படியான பதிவிறக்க கோரிக்கைகள் காரணமாக உங்கள் IP YouTube இல் தடைசெய்யப்படலாம். IP தடை என்பது குறைந்தது 2-3 மாதங்களுக்கு அந்த IP சாதனத்திலிருந்து YouTube ஐப் பயன்படுத்த முடியாது (நீங்கள் உள்நுழைந்திருந்தாலும் கூட). இது ஒருபோதும் நடந்தால் Spotube பொறுப்பேற்காது",
|
||||||
"by_clicking_accept_terms": "'ஏற்றுக்கொள்' என்பதைக் கிளிக் செய்வதன் மூலம் பின்வரும் விதிமுறைகளுக்கு நீங்கள் ஒப்புக்கொள்கிறீர்கள்:",
|
"by_clicking_accept_terms": "'ஏற்றுக்கொள்' என்பதைக் கிளிக் செய்வதன் மூலம் பின்வரும் விதிமுறைகளுக்கு நீங்கள் ஒப்புக்கொள்கிறீர்கள்:",
|
||||||
"download_agreement_1": "நான் இசையைத் திருடுகிறேன் என்பது எனக்குத் தெரியும். நான் கெட்டவன்",
|
"download_agreement_1": "நான் இசையைத் திருடுகிறேன் என்பது எனக்குத் தெரியும். நான் கெட்டவன்",
|
||||||
"download_agreement_2": "நான் கலைஞரை முடிந்தவரை ஆதரிப்பேன், அவர்களின் கலைக்கு பணம் செலுத்த எனக்கு பணம் இல்லாததால் மட்டுமே இதைச் செய்கிறேன்",
|
"download_agreement_2": "நான் கலைஞரை முடிந்தவரை ஆதரிப்பேன், அவர்களின் கலைக்கு பணம் செலுத்த எனக்கு பணம் இல்லாததால் மட்டுமே இதைச் செய்கிறேன்",
|
||||||
"download_agreement_3": "என் IP YouTube இல் தடைசெய்யப்படலாம் என்பதை நான் முழுமையாக அறிவேன், மேலும் என் தற்போதைய செயலால் ஏற்படும் எந்த விபத்துகளுக்கும் Spotube அல்லது அதன் உரிமையாளர்கள்/பங்களிப்பாளர்களை பொறுப்பாக்க மாட்டேன்",
|
"download_agreement_3": "என் IP YouTube இல் தடைசெய்யப்படலாம் என்பதை நான் முழுமையாக அறிவேன், மேலும் என் தற்போதைய செயலால் ஏற்படும் எந்த விபத்துகளுக்கும் Spotube அல்லது அதன் உரிமையாளர்கள்/பங்களிப்பாளர்களை பொறுப்பாக்க மாட்டேன்",
|
||||||
"decline": "மறு",
|
"decline": "மறு",
|
||||||
"accept": "ஏற்றுக்கொள்",
|
"accept": "ஏற்றுக்கொள்",
|
||||||
"details": "விவரங்கள்",
|
"details": "விவரங்கள்",
|
||||||
"youtube": "YouTube",
|
"youtube": "YouTube",
|
||||||
"channel": "சேனல்",
|
"channel": "சேனல்",
|
||||||
"likes": "விருப்பங்கள்",
|
"likes": "விருப்பங்கள்",
|
||||||
"dislikes": "விருப்பமில்லாதவை",
|
"dislikes": "விருப்பமில்லாதவை",
|
||||||
"views": "பார்வைகள்",
|
"views": "பார்வைகள்",
|
||||||
"streamUrl": "ஸ்ட்ரீம் URL",
|
"streamUrl": "ஸ்ட்ரீம் URL",
|
||||||
"stop": "நிறுத்து",
|
"stop": "நிறுத்து",
|
||||||
"sort_newest": "புதிதாக சேர்க்கப்பட்டவற்றை வரிசைப்படுத்து",
|
"sort_newest": "புதிதாக சேர்க்கப்பட்டவற்றை வரிசைப்படுத்து",
|
||||||
"sort_oldest": "பழமையானவற்றை வரிசைப்படுத்து",
|
"sort_oldest": "பழமையானவற்றை வரிசைப்படுத்து",
|
||||||
"sleep_timer": "உறக்க நேரம்",
|
"sleep_timer": "உறக்க நேரம்",
|
||||||
"mins": "{minutes} நிமிடங்கள்",
|
"minutes": "{minutes} நிமிடங்கள்",
|
||||||
"hours": "{hours} மணிநேரங்கள்",
|
"hours": "{hours} மணிநேரங்கள்",
|
||||||
"hour": "{hours} மணிநேரம்",
|
"hour": "{hours} மணிநேரம்",
|
||||||
"custom_hours": "தனிப்பயன் மணிநேரங்கள்",
|
"custom_hours": "தனிப்பயன் மணிநேரங்கள்",
|
||||||
"logs": "பதிவுகள்",
|
"logs": "பதிவுகள்",
|
||||||
"developers": "உருவாக்குநர்கள்",
|
"developers": "உருவாக்குநர்கள்",
|
||||||
"not_logged_in": "நீங்கள் உள்நுழையவில்லை",
|
"not_logged_in": "நீங்கள் உள்நுழையவில்லை",
|
||||||
"search_mode": "தேடல் முறை",
|
"search_mode": "தேடல் முறை",
|
||||||
"audio_source": "ஒலி மூலம்",
|
"audio_source": "ஒலி மூலம்",
|
||||||
"ok": "சரி",
|
"ok": "சரி",
|
||||||
"failed_to_encrypt": "குறியாக்கம் தோல்வியடைந்தது",
|
"failed_to_encrypt": "குறியாக்கம் தோல்வியடைந்தது",
|
||||||
"encryption_failed_warning": "Spotube உங்கள் தரவை பாதுகாப்பாக சேமிக்க குறியாக்கத்தைப் பயன்படுத்துகிறது. ஆனால் அவ்வாறு செய்ய முடியவில்லை. எனவே இது பாதுகாப்பற்ற சேமிப்பகத்திற்கு மாறும்\nநீங்கள் லினக்ஸ் பயன்படுத்துகிறீர்கள் என்றால், எந்த ரகசிய சேவையும் (gnome-keyring, kde-wallet, keepassxc போன்றவை) நிறுவப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும்",
|
"encryption_failed_warning": "Spotube உங்கள் தரவை பாதுகாப்பாக சேமிக்க குறியாக்கத்தைப் பயன்படுத்துகிறது. ஆனால் அவ்வாறு செய்ய முடியவில்லை. எனவே இது பாதுகாப்பற்ற சேமிப்பகத்திற்கு மாறும்\nநீங்கள் லினக்ஸ் பயன்படுத்துகிறீர்கள் என்றால், எந்த ரகசிய சேவையும் (gnome-keyring, kde-wallet, KeePassXC போன்றவை) நிறுவப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும்",
|
||||||
"querying_info": "தகவலைக் கேட்கிறது...",
|
"querying_info": "தகவலைக் கேட்கிறது...",
|
||||||
"piped_api_down": "Piped API செயலிழந்துள்ளது",
|
"piped_api_down": "Piped API செயலிழந்துள்ளது",
|
||||||
"piped_down_error_instructions": "Piped நிகழ்வு {pipedInstance} தற்போது செயலிழந்துள்ளது\n\nநிகழ்வை மாற்றவும் அல்லது 'API வகை'யை அதிகாரப்பூர்வ YouTube API க்கு மாற்றவும்\n\nமாற்றத்திற்குப் பிறகு பயன்பாட்டை மறுதொடக்கம் செய்வதை உறுதிப்படுத்தவும்",
|
"piped_down_error_instructions": "Piped நிகழ்வு {pipedInstance} தற்போது செயலிழந்துள்ளது\n\nநிகழ்வை மாற்றவும் அல்லது 'API வகை'யை அதிகாரப்பூர்வ YouTube API க்கு மாற்றவும்\n\nமாற்றத்திற்குப் பிறகு பயன்பாட்டை மறுதொடக்கம் செய்வதை உறுதிப்படுத்தவும்",
|
||||||
"you_are_offline": "நீங்கள் தற்போது ஆஃப்லைனில் உள்ளீர்கள்",
|
"you_are_offline": "நீங்கள் தற்போது ஆஃப்லைனில் உள்ளீர்கள்",
|
||||||
"connection_restored": "உங்கள் இணைய இணைப்பு மீட்டெடுக்கப்பட்டது",
|
"connection_restored": "உங்கள் இணைய இணைப்பு மீட்டெடுக்கப்பட்டது",
|
||||||
"use_system_title_bar": "கணினி தலைப்புப் பட்டியைப் பயன்படுத்தவும்",
|
"use_system_title_bar": "கணினி தலைப்புப் பட்டியைப் பயன்படுத்தவும்",
|
||||||
"crunching_results": "முடிவுகளை செயலாக்குகிறது...",
|
"crunching_results": "முடிவுகளை செயலாக்குகிறது...",
|
||||||
"search_to_get_results": "முடிவுகளைப் பெற தேடவும்",
|
"search_to_get_results": "முடிவுகளைப் பெற தேடவும்",
|
||||||
"use_amoled_mode": "கருமை நிற இருண்ட தீம்",
|
"use_amoled_mode": "கருமை நிற இருண்ட தீம்",
|
||||||
"pitch_dark_theme": "AMOLED முறை",
|
"pitch_dark_theme": "AMOLED முறை",
|
||||||
"normalize_audio": "ஒலியை சீரமை",
|
"normalize_audio": "ஒலியை சீரமை",
|
||||||
"change_cover": "அட்டையை மாற்று",
|
"change_cover": "அட்டையை மாற்று",
|
||||||
"add_cover": "அட்டையைச் சேர்",
|
"add_cover": "அட்டையைச் சேர்",
|
||||||
"restore_defaults": "இயல்புநிலைகளை மீட்டமை",
|
"restore_defaults": "இயல்புநிலைகளை மீட்டமை",
|
||||||
"download_music_codec": "இசை கோடெக்கை பதிவிறக்கு",
|
"download_music_codec": "இசை கோடெக்கை பதிவிறக்கு",
|
||||||
"streaming_music_codec": "இசை கோடெக்கை ஸ்ட்ரீம் செய்",
|
"streaming_music_codec": "இசை கோடெக்கை ஸ்ட்ரீம் செய்",
|
||||||
"login_with_lastfm": "Last.fm உடன் உள்நுழைக",
|
"login_with_lastfm": "Last.fm உடன் உள்நுழைக",
|
||||||
"connect": "இணை",
|
"connect": "இணை",
|
||||||
"disconnect_lastfm": "Last.fm இலிருந்து துண்டி",
|
"disconnect_lastfm": "Last.fm இலிருந்து துண்டி",
|
||||||
"disconnect": "துண்டி",
|
"disconnect": "துண்டி",
|
||||||
"username": "பயனர்பெயர்",
|
"username": "பயனர்பெயர்",
|
||||||
"password": "கடவுச்சொல்",
|
"password": "கடவுச்சொல்",
|
||||||
"login": "உள்நுழைக",
|
"login": "உள்நுழைக",
|
||||||
"login_with_your_lastfm": "உங்கள் Last.fm கணக்குடன் உள்நுழைக",
|
"login_with_your_lastfm": "உங்கள் Last.fm கணக்குடன் உள்நுழைக",
|
||||||
"scrobble_to_lastfm": "Last.fm க்கு ஸ்க்ரோபிள் செய்",
|
"scrobble_to_lastfm": "Last.fm க்கு ஸ்க்ரோபிள் செய்",
|
||||||
"go_to_album": "ஆல்பத்திற்குச் செல்",
|
"go_to_album": "ஆல்பத்திற்குச் செல்",
|
||||||
"discord_rich_presence": "Discord செழுமையான தோற்றம்",
|
"discord_rich_presence": "Discord செழுமையான தோற்றம்",
|
||||||
"browse_all": "அனைத்தையும் உலாவு",
|
"browse_all": "அனைத்தையும் உலாவு",
|
||||||
"genres": "வகைகள்",
|
"genres": "வகைகள்",
|
||||||
"explore_genres": "வகைகளை ஆராயுங்கள்",
|
"explore_genres": "வகைகளை ஆராயுங்கள்",
|
||||||
"friends": "நண்பர்கள்",
|
"friends": "நண்பர்கள்",
|
||||||
"no_lyrics_available": "மன்னிக்கவும், இந்தப் பாடலுக்கான பாடல் வரிகளைக் கண்டுபிடிக்க முடியவில்லை",
|
"no_lyrics_available": "மன்னிக்கவும், இந்தப் பாடலுக்கான பாடல் வரிகளைக் கண்டுபிடிக்க முடியவில்லை",
|
||||||
"start_a_radio": "வானொலியைத் தொடங்கு",
|
"start_a_radio": "வானொலியைத் தொடங்கு",
|
||||||
"how_to_start_radio": "வானொலியை எவ்வாறு தொடங்க விரும்புகிறீர்கள்?",
|
"how_to_start_radio": "வானொலியை எவ்வாறு தொடங்க விரும்புகிறீர்கள்?",
|
||||||
"replace_queue_question": "தற்போதைய வரிசையை மாற்ற விரும்புகிறீர்களா அல்லது அதனுடன் சேர்க்க விரும்புகிறீர்களா?",
|
"replace_queue_question": "தற்போதைய வரிசையை மாற்ற விரும்புகிறீர்களா அல்லது அதனுடன் சேர்க்க விரும்புகிறீர்களா?",
|
||||||
"endless_playback": "முடிவற்ற இயக்கம்",
|
"endless_playback": "முடிவற்ற இயக்கம்",
|
||||||
"delete_playlist": "பாடல் பட்டியலை நீக்கு",
|
"delete_playlist": "பாடல் பட்டியலை நீக்கு",
|
||||||
"delete_playlist_confirmation": "இந்த பாடல் பட்டியலை நீக்க விரும்புகிறீர்களா?",
|
"delete_playlist_confirmation": "இந்த பாடல் பட்டியலை நீக்க விரும்புகிறீர்களா?",
|
||||||
"local_tracks": "உள்ளூர் பாடல்கள்",
|
"local_tracks": "உள்ளூர் பாடல்கள்",
|
||||||
"local_tab": "உள்ளூர்",
|
"local_tab": "உள்ளூர்",
|
||||||
"song_link": "பாடல் இணைப்பு",
|
"song_link": "பாடல் இணைப்பு",
|
||||||
"skip_this_nonsense": "இந்த அர்த்தமற்றதைத் தவிர்",
|
"skip_this_nonsense": "இந்த அர்த்தமற்றதைத் தவிர்",
|
||||||
"freedom_of_music": "\"இசையின் சுதந்திரம்\"",
|
"freedom_of_music": "\"இசையின் சுதந்திரம்\"",
|
||||||
"freedom_of_music_palm": "\"உங்கள் கைகளில் இசையின் சுதந்திரம்\"",
|
"freedom_of_music_palm": "\"உங்கள் கைகளில் இசையின் சுதந்திரம்\"",
|
||||||
"get_started": "தொடங்குவோம்",
|
"get_started": "தொடங்குவோம்",
|
||||||
"youtube_source_description": "பரிந்துரைக்கப்படுகிறது மற்றும் சிறப்பாக செயல்படுகிறது.",
|
"youtube_source_description": "பரிந்துரைக்கப்படுகிறது மற்றும் சிறப்பாக செயல்படுகிறது.",
|
||||||
"piped_source_description": "சுதந்திரமாக உணர்கிறீர்களா? YouTube போலவே ஆனால் மிகவும் சுதந்திரமானது.",
|
"piped_source_description": "சுதந்திரமாக உணர்கிறீர்களா? YouTube போலவே ஆனால் மிகவும் சுதந்திரமானது.",
|
||||||
"jiosaavn_source_description": "தெற்காசியப் பிராந்தியத்திற்கு சிறந்தது.",
|
"jiosaavn_source_description": "தெற்காசியப் பிராந்தியத்திற்கு சிறந்தது.",
|
||||||
"invidious_source_description": "Piped ஐப் போன்றது ஆனால் அதிக கிடைக்கும் தன்மையுடன்.",
|
"invidious_source_description": "Piped ஐப் போன்றது ஆனால் அதிக கிடைக்கும் தன்மையுடன்.",
|
||||||
"highest_quality": "உயர்ந்த தரம்: {quality}",
|
"highest_quality": "உயர்ந்த தரம்: {quality}",
|
||||||
"select_audio_source": "ஒலி மூலத்தைத் தேர்ந்தெடுக்கவும்",
|
"select_audio_source": "ஒலி மூலத்தைத் தேர்ந்தெடுக்கவும்",
|
||||||
"endless_playback_description": "வரிசையின் இறுதியில் புதிய பாடல்களை\nதானாகவே சேர்க்கவும்",
|
"endless_playback_description": "வரிசையின் இறுதியில் புதிய பாடல்களை\nதானாகவே சேர்க்கவும்",
|
||||||
"choose_your_region": "உங்கள் பிராந்தியத்தைத் தேர்ந்தெடுக்கவும்",
|
"choose_your_region": "உங்கள் பிராந்தியத்தைத் தேர்ந்தெடுக்கவும்",
|
||||||
"choose_your_region_description": "இது உங்கள் இருப்பிடத்திற்கான சரியான உள்ளடக்கத்தை\nSpotube காட்ட உதவும்.",
|
"choose_your_region_description": "இது உங்கள் இருப்பிடத்திற்கான சரியான உள்ளடக்கத்தை\nSpotube காட்ட உதவும்.",
|
||||||
"choose_your_language": "உங்கள் மொழியைத் தேர்ந்தெடுக்கவும்",
|
"choose_your_language": "உங்கள் மொழியைத் தேர்ந்தெடுக்கவும்",
|
||||||
"help_project_grow": "இந்த திட்டம் வளர உதவுங்கள்",
|
"help_project_grow": "இந்த திட்டம் வளர உதவுங்கள்",
|
||||||
"help_project_grow_description": "Spotube ஒரு திறந்த மூல திட்டம். திட்டத்திற்கு பங்களிப்பு செய்வதன் மூலம், பிழைகளைப் புகாரளிப்பதன் மூலம் அல்லது புதிய அம்சங்களைப் பரிந்துரைப்பதன் மூலம் இந்தத் திட்டம் வளர உதவலாம்.",
|
"help_project_grow_description": "Spotube ஒரு திறந்த மூல திட்டம். திட்டத்திற்கு பங்களிப்பு செய்வதன் மூலம், பிழைகளைப் புகாரளிப்பதன் மூலம் அல்லது புதிய அம்சங்களைப் பரிந்துரைப்பதன் மூலம் இந்தத் திட்டம் வளர உதவலாம்.",
|
||||||
"contribute_on_github": "GitHub இல் பங்களியுங்கள்",
|
"contribute_on_github": "GitHub இல் பங்களியுங்கள்",
|
||||||
"donate_on_open_collective": "Open Collective இல் நன்கொடை அளியுங்கள்",
|
"donate_on_open_collective": "Open Collective இல் நன்கொடை அளியுங்கள்",
|
||||||
"browse_anonymously": "அநாமதேயமாக உலாவுக",
|
"browse_anonymously": "அநாமதேயமாக உலாவுக",
|
||||||
"enable_connect": "இணைப்பை இயக்கு",
|
"enable_connect": "இணைப்பை இயக்கு",
|
||||||
"enable_connect_description": "மற்ற சாதனங்களிலிருந்து Spotube ஐக் கட்டுப்படுத்தவும்",
|
"enable_connect_description": "மற்ற சாதனங்களிலிருந்து Spotube ஐக் கட்டுப்படுத்தவும்",
|
||||||
"devices": "சாதனங்கள்",
|
"devices": "சாதனங்கள்",
|
||||||
"select": "தேர்ந்தெடு",
|
"select": "தேர்ந்தெடு",
|
||||||
"connect_client_alert": "நீங்கள் {client} ஆல் கட்டுப்படுத்தப்படுகிறீர்கள்",
|
"connect_client_alert": "நீங்கள் {client} ஆல் கட்டுப்படுத்தப்படுகிறீர்கள்",
|
||||||
"this_device": "இந்த சாதனம்",
|
"this_device": "இந்த சாதனம்",
|
||||||
"remote": "தொலைநிலை",
|
"remote": "தொலைநிலை",
|
||||||
"stats": "புள்ளிவிவரங்கள்",
|
"stats": "புள்ளிவிவரங்கள்",
|
||||||
"and_n_more": "மற்றும் {count} கூடுதலாக",
|
"and_n_more": "மற்றும் {count} கூடுதலாக",
|
||||||
"recently_played": "சமீபத்தில் இயக்கியவை",
|
"recently_played": "சமீபத்தில் இயக்கியவை",
|
||||||
"browse_more": "மேலும் உலாவு",
|
"browse_more": "மேலும் உலாவு",
|
||||||
"no_title": "தலைப்பு இல்லை",
|
"no_title": "தலைப்பு இல்லை",
|
||||||
"not_playing": "இயக்கப்படவில்லை",
|
"not_playing": "இயக்கப்படவில்லை",
|
||||||
"epic_failure": "மோசமான தோல்வி!",
|
"epic_failure": "மோசமான தோல்வி!",
|
||||||
"added_num_tracks_to_queue": "{tracks_length} பாடல்கள் வரிசையில் சேர்க்கப்பட்டன",
|
"added_num_tracks_to_queue": "{tracks_length} பாடல்கள் வரிசையில் சேர்க்கப்பட்டன",
|
||||||
"spotube_has_an_update": "Spotube க்கு ஒரு புதுப்பிப்பு உள்ளது",
|
"spotube_has_an_update": "Spotube க்கு ஒரு புதுப்பிப்பு உள்ளது",
|
||||||
"download_now": "இப்போது பதிவிறக்கு",
|
"download_now": "இப்போது பதிவிறக்கு",
|
||||||
"nightly_version": "Spotube Nightly {nightlyBuildNum} வெளியிடப்பட்டுள்ளது",
|
"nightly_version": "Spotube Nightly {nightlyBuildNum} வெளியிடப்பட்டுள்ளது",
|
||||||
"release_version": "Spotube v{version} வெளியிடப்பட்டுள்ளது",
|
"release_version": "Spotube v{version} வெளியிடப்பட்டுள்ளது",
|
||||||
"read_the_latest": "சமீபத்திய ",
|
"read_the_latest": "சமீபத்திய ",
|
||||||
"release_notes": "வெளியீட்டு குறிப்புகளைப் படிக்கவும்",
|
"release_notes": "வெளியீட்டு குறிப்புகளைப் படிக்கவும்",
|
||||||
"pick_color_scheme": "வண்ணத் திட்டத்தைத் தேர்ந்தெடுக்கவும்",
|
"pick_color_scheme": "வண்ணத் திட்டத்தைத் தேர்ந்தெடுக்கவும்",
|
||||||
"save": "சேமி",
|
"save": "சேமி",
|
||||||
"choose_the_device": "சாதனத்தைத் தேர்ந்தெடுக்கவும்:",
|
"choose_the_device": "சாதனத்தைத் தேர்ந்தெடுக்கவும்:",
|
||||||
"multiple_device_connected": "பல சாதனங்கள் இணைக்கப்பட்டுள்ளன.\nஇந்த செயல் நடைபெற வேண்டிய சாதனத்தைத் தேர்ந்தெடுக்கவும்",
|
"multiple_device_connected": "பல சாதனங்கள் இணைக்கப்பட்டுள்ளன.\nஇந்த செயல் நடைபெற வேண்டிய சாதனத்தைத் தேர்ந்தெடுக்கவும்",
|
||||||
"nothing_found": "எதுவும் கிடைக்கவில்லை",
|
"nothing_found": "எதுவும் கிடைக்கவில்லை",
|
||||||
"the_box_is_empty": "பெட்டி காலியாக உள்ளது",
|
"the_box_is_empty": "பெட்டி காலியாக உள்ளது",
|
||||||
"top_artists": "சிறந்த கலைஞர்கள்",
|
"top_artists": "சிறந்த கலைஞர்கள்",
|
||||||
"top_albums": "சிறந்த ஆல்பங்கள்",
|
"top_albums": "சிறந்த ஆல்பங்கள்",
|
||||||
"this_week": "இந்த வாரம்",
|
"this_week": "இந்த வாரம்",
|
||||||
"this_month": "இந்த மாதம்",
|
"this_month": "இந்த மாதம்",
|
||||||
"last_6_months": "கடந்த 6 மாதங்கள்",
|
"last_6_months": "கடந்த 6 மாதங்கள்",
|
||||||
"this_year": "இந்த ஆண்டு",
|
"this_year": "இந்த ஆண்டு",
|
||||||
"last_2_years": "கடந்த 2 ஆண்டுகள்",
|
"last_2_years": "கடந்த 2 ஆண்டுகள்",
|
||||||
"all_time": "எல்லா நேரமும்",
|
"all_time": "எல்லா நேரமும்",
|
||||||
"powered_by_provider": "{providerName} ஆல் இயக்கப்படுகிறது",
|
"powered_by_provider": "{providerName} ஆல் இயக்கப்படுகிறது",
|
||||||
"email": "மின்னஞ்சல்",
|
"email": "மின்னஞ்சல்",
|
||||||
"profile_followers": "பின்தொடர்பவர்கள்",
|
"profile_followers": "பின்தொடர்பவர்கள்",
|
||||||
"birthday": "பிறந்த நாள்",
|
"birthday": "பிறந்த நாள்",
|
||||||
"subscription": "சந்தா",
|
"subscription": "சந்தா",
|
||||||
"not_born": "பிறக்கவில்லை",
|
"not_born": "பிறக்கவில்லை",
|
||||||
"hacker": "ஹேக்கர்",
|
"hacker": "ஹேக்கர்",
|
||||||
"profile": "சுயவிவரம்",
|
"profile": "சுயவிவரம்",
|
||||||
"no_name": "பெயர் இல்லை",
|
"no_name": "பெயர் இல்லை",
|
||||||
"edit": "திருத்து",
|
"edit": "திருத்து",
|
||||||
"user_profile": "பயனர் சுயவிவரம்",
|
"user_profile": "பயனர் சுயவிவரம்",
|
||||||
"count_plays": "{count} முறை இசைக்கப்பட்டது",
|
"count_plays": "{count} முறை இசைக்கப்பட்டது",
|
||||||
"streaming_fees_hypothetical": "ஸ்ட்ரீமிங் கட்டணங்கள் (கற்பனை)",
|
"streaming_fees_hypothetical": "ஸ்ட்ரீமிங் கட்டணங்கள் (கற்பனை)",
|
||||||
"minutes_listened": "காலம் கேட்டது",
|
"minutes_listened": "காலம் கேட்டது",
|
||||||
"streamed_songs": "ஸ்ட்ரீமிங் செய்யப்பட்ட பாடல்கள்",
|
"streamed_songs": "ஸ்ட்ரீமிங் செய்யப்பட்ட பாடல்கள்",
|
||||||
"count_streams": "{count} ஸ்ட்ரீம்கள்",
|
"count_streams": "{count} ஸ்ட்ரீம்கள்",
|
||||||
"owned_by_you": "உங்களால் கொண்டது",
|
"owned_by_you": "உங்களால் கொண்டது",
|
||||||
"copied_shareurl_to_clipboard": "நகலெடுக்கப்பட்டது {shareUrl} கிளிப்போர்டுக்காக",
|
"copied_share_url_to_clipboard": "நகலெடுக்கப்பட்டது {shareUrl} கிளிப்போர்டுக்காக",
|
||||||
"spotify_hipotetical_calculation": "*இது Spotify இன் ஒவ்வொரு ஸ்ட்ரீமிற்கும்\n$0.003 முதல் $0.005 வரை அளவீடு அடிப்படையில் கணக்கிடப்படுகிறது. இது ஒரு கற்பனை\nகணக்கீடு ஆகும், பயனர் எந்த அளவிற்கு கலைஞர்களுக்கு\nஅதோர் பாடலை Spotify மென்பொருளில் கேட்டால் எவ்வளவு பணம் செலுத்தினார்கள் என்பதைக் கண்டுபிடிக்க.",
|
"spotify_hypothetical_calculation": "*இது Spotify இன் ஒவ்வொரு ஸ்ட்ரீமிற்கும்\n$0.003 முதல் $0.005 வரை அளவீடு அடிப்படையில் கணக்கிடப்படுகிறது. இது ஒரு கற்பனை\nகணக்கீடு ஆகும், பயனர் எந்த அளவிற்கு கலைஞர்களுக்கு\nஅதோர் பாடலை Spotify மென்பொருளில் கேட்டால் எவ்வளவு பணம் செலுத்தினார்கள் என்பதைக் கண்டுபிடிக்க.",
|
||||||
"count_mins": "{minutes} நிமிடங்கள்",
|
"count_minutes": "{minutes} நிமிடங்கள்",
|
||||||
"summary_minutes": "நிமிடங்கள்",
|
"summary_minutes": "நிமிடங்கள்",
|
||||||
"summary_listened_to_music": "இசை கேட்டது",
|
"summary_listened_to_music": "இசை கேட்டது",
|
||||||
"summary_songs": "பாடல்கள்",
|
"summary_songs": "பாடல்கள்",
|
||||||
"summary_streamed_overall": "மொத்தமாக ஸ்ட்ரீமிங்",
|
"summary_streamed_overall": "மொத்தமாக ஸ்ட்ரீமிங்",
|
||||||
"summary_owed_to_artists": "கலைஞர்களுக்கு\nஇந்த மாதம் சொந்தமானது",
|
"summary_owed_to_artists": "கலைஞர்களுக்கு\nஇந்த மாதம் சொந்தமானது",
|
||||||
"summary_artists": "கலைஞர்கள்",
|
"summary_artists": "கலைஞர்கள்",
|
||||||
"summary_music_reached_you": "இசை உங்களுக்கு வந்தது",
|
"summary_music_reached_you": "இசை உங்களுக்கு வந்தது",
|
||||||
"summary_full_albums": "முழு ஆல்பங்கள்",
|
"summary_full_albums": "முழு ஆல்பங்கள்",
|
||||||
"summary_got_your_love": "உங்கள் அன்பை பெற்றுக்கொண்டேன்",
|
"summary_got_your_love": "உங்கள் அன்பை பெற்றுக்கொண்டேன்",
|
||||||
"summary_playlists": "பாடல் பட்டியல்கள்",
|
"summary_playlists": "பாடல் பட்டியல்கள்",
|
||||||
"summary_were_on_repeat": "மீண்டும் மீண்டும் இருந்தன",
|
"summary_were_on_repeat": "மீண்டும் மீண்டும் இருந்தன",
|
||||||
"total_money": "மொத்தம் {money}",
|
"total_money": "மொத்தம் {money}",
|
||||||
"webview_not_found": "வெப்வியூ கிடைக்கவில்லை",
|
"webview_not_found": "வெப்வியூ கிடைக்கவில்லை",
|
||||||
"webview_not_found_description": "உங்கள் சாதனத்தில் எந்தவொரு வெப்வியூ இயக்கத்தை நிறுவவில்லை.\nஇது நிறுவப்பட்டிருந்தால், சுற்றுச்சூழல் பாதையில் PATH உள்ளது என்பதை உறுதிபடுத்தவும்\n\nநிறுவித்த பிறகு, செயலியை மறுதொடக்கம் செய்யவும்",
|
"webview_not_found_description": "உங்கள் சாதனத்தில் எந்தவொரு வெப்வியூ இயக்கத்தை நிறுவவில்லை.\nஇது நிறுவப்பட்டிருந்தால், சுற்றுச்சூழல் பாதையில் PATH உள்ளது என்பதை உறுதிபடுத்தவும்\n\nநிறுவித்த பிறகு, செயலியை மறுதொடக்கம் செய்யவும்",
|
||||||
"unsupported_platform": "அதிர்ஷ்டகாத உருப்படியை ஆதரிக்கவில்லை",
|
"unsupported_platform": "அதிர்ஷ்டகாத உருப்படியை ஆதரிக்கவில்லை",
|
||||||
"cache_music": "இசையை கேஷ் செய்",
|
"cache_music": "இசையை கேஷ் செய்",
|
||||||
"open": "திறக்கவும்",
|
"open": "திறக்கவும்",
|
||||||
"cache_folder": "கேஷ் அடைவு",
|
"cache_folder": "கேஷ் அடைவு",
|
||||||
"export": "ஏற்றுமதி",
|
"export": "ஏற்றுமதி",
|
||||||
"clear_cache": "கேஷ் அழிக்கவும்",
|
"clear_cache": "கேஷ் அழிக்கவும்",
|
||||||
"clear_cache_confirmation": "கேஷைப் அழிக்க விரும்புகிறீர்களா?",
|
"clear_cache_confirmation": "கேஷைப் அழிக்க விரும்புகிறீர்களா?",
|
||||||
"export_cache_files": "கேஷில் உள்ள கோப்புகளை ஏற்றுமதி செய்யவும்",
|
"export_cache_files": "கேஷில் உள்ள கோப்புகளை ஏற்றுமதி செய்யவும்",
|
||||||
"found_n_files": "{count} கோப்புகள் கிடைத்தன",
|
"found_n_files": "{count} கோப்புகள் கிடைத்தன",
|
||||||
"export_cache_confirmation": "இந்த கோப்புகளை ஏற்றுமதி செய்ய விரும்புகிறீர்களா?",
|
"export_cache_confirmation": "இந்த கோப்புகளை ஏற்றுமதி செய்ய விரும்புகிறீர்களா?",
|
||||||
"exported_n_out_of_m_files": "{filesExported} கோப்புகள் ஏற்றுமதி செய்யப்பட்டன, {files} கோப்புகளில்",
|
"exported_n_out_of_m_files": "{filesExported} கோப்புகள் ஏற்றுமதி செய்யப்பட்டன, {files} கோப்புகளில்",
|
||||||
"undo": "செயல்தவிர்",
|
"undo": "செயல்தவிர்",
|
||||||
"download_all": "அனைத்தையும் பதிவிறக்குக",
|
"download_all": "அனைத்தையும் பதிவிறக்குக",
|
||||||
"add_all_to_playlist": "அனைத்தையும் பாடல் பட்டியலில் சேர்க்கவும்",
|
"add_all_to_playlist": "அனைத்தையும் பாடல் பட்டியலில் சேர்க்கவும்",
|
||||||
"add_all_to_queue": "அனைத்தையும் வரிசைப்படுத்து",
|
"add_all_to_queue": "அனைத்தையும் வரிசைப்படுத்து",
|
||||||
"play_all_next": "அடுத்த உள்ள அனைத்தையும் இயக்கு",
|
"play_all_next": "அடுத்த உள்ள அனைத்தையும் இயக்கு",
|
||||||
"pause": "நிறுத்து",
|
"pause": "நிறுத்து",
|
||||||
"view_all": "அனைத்தையும் காண்க",
|
"view_all": "அனைத்தையும் காண்க",
|
||||||
"no_tracks_added_yet": "உங்கள் பாடல்களை இன்னும் சேர்க்கவில்லை என்றால் தெரியாதே",
|
"no_tracks_added_yet": "உங்கள் பாடல்களை இன்னும் சேர்க்கவில்லை என்றால் தெரியாதே",
|
||||||
"no_tracks": "இங்கு பாடல்கள் எதுவும் இல்லை",
|
"no_tracks": "இங்கு பாடல்கள் எதுவும் இல்லை",
|
||||||
"no_tracks_listened_yet": "இன்னும் எதையும் கேள்வியில்லை",
|
"no_tracks_listened_yet": "இன்னும் எதையும் கேள்வியில்லை",
|
||||||
"not_following_artists": "நீங்கள் எந்த கலைஞரையும் பின்தொடரவில்லை",
|
"not_following_artists": "நீங்கள் எந்த கலைஞரையும் பின்தொடரவில்லை",
|
||||||
"no_favorite_albums_yet": "நீங்கள் இன்னும் எந்த ஆல்பங்களையும் பிடித்தவையாகச் சேர்க்கவில்லை",
|
"no_favorite_albums_yet": "நீங்கள் இன்னும் எந்த ஆல்பங்களையும் பிடித்தவையாகச் சேர்க்கவில்லை",
|
||||||
"no_logs_found": "பதிவுகள் எதுவும் கிடைக்கவில்லை",
|
"no_logs_found": "பதிவுகள் எதுவும் கிடைக்கவில்லை",
|
||||||
"youtube_engine": "YouTube இயந்திரம்",
|
"youtube_engine": "YouTube இயந்திரம்",
|
||||||
"youtube_engine_not_installed_title": "{engine} நிறுவியதில்லை",
|
"youtube_engine_not_installed_title": "{engine} நிறுவியதில்லை",
|
||||||
"youtube_engine_not_installed_message": "{engine} உங்கள் கணினியில் நிறுவியதில்லை.",
|
"youtube_engine_not_installed_message": "{engine} உங்கள் கணினியில் நிறுவியதில்லை.",
|
||||||
"youtube_engine_set_path": "PATH மாறியில் கிடைக்கிறதா என்பதை உறுதிப்படுத்தவும் அல்லது\n{engine} செயல் செய்யக்கூடிய முறையை கீழே அமைக்கவும்",
|
"youtube_engine_set_path": "PATH மாறியில் கிடைக்கிறதா என்பதை உறுதிப்படுத்தவும் அல்லது\n{engine} செயல் செய்யக்கூடிய முறையை கீழே அமைக்கவும்",
|
||||||
"youtube_engine_unix_issue_message": "macOS/Linux/unix போல் OS இல், .zshrc/.bashrc/.bash_profile போன்றவை அமைப்பில் பாதையை PATH அமைப்பது இயலாது.\nநீங்கள்.shell configuration file இல் பாதையை அமைக்க வேண்டும்",
|
"youtube_engine_unix_issue_message": "macOS/Linux/unix போல் OS இல், .zshrc/.bashrc/.bash_profile போன்றவை அமைப்பில் பாதையை PATH அமைப்பது இயலாது.\nநீங்கள்.shell configuration file இல் பாதையை அமைக்க வேண்டும்",
|
||||||
"download": "பதிவிறக்கு",
|
"download": "பதிவிறக்கு",
|
||||||
"file_not_found": "கோப்பு கிடைக்கவில்லை",
|
"file_not_found": "கோப்பு கிடைக்கவில்லை",
|
||||||
"custom": "தனிப்பயன்",
|
"custom": "தனிப்பயன்",
|
||||||
"add_custom_url": "தனிப்பயன் URL ஐச் சேர்க்கவும்"
|
"add_custom_url": "தனிப்பயன் URL ஐச் சேர்க்கவும்"
|
||||||
}
|
}
|
@ -91,7 +91,7 @@
|
|||||||
"mini_player": "มินิเพลเยอร์",
|
"mini_player": "มินิเพลเยอร์",
|
||||||
"slide_to_seek": "เลื่อนเพื่อไปข้างหน้าหรือถอยหลัง",
|
"slide_to_seek": "เลื่อนเพื่อไปข้างหน้าหรือถอยหลัง",
|
||||||
"shuffle_playlist": "สุ่มเพลย์ลิสต์",
|
"shuffle_playlist": "สุ่มเพลย์ลิสต์",
|
||||||
"unshuffle_playlist": "ยกเลิกการสุ่มเพลย์ลิสต์",
|
"not_shuffle_playlist": "ยกเลิกการสุ่มเพลย์ลิสต์",
|
||||||
"previous_track": "แทร็กก่อนหน้า",
|
"previous_track": "แทร็กก่อนหน้า",
|
||||||
"next_track": "แทร็กถัดไป",
|
"next_track": "แทร็กถัดไป",
|
||||||
"pause_playback": "หยุดการเล่น",
|
"pause_playback": "หยุดการเล่น",
|
||||||
@ -176,7 +176,7 @@
|
|||||||
"first_go_to": "ก่อนอื่น ไปที่",
|
"first_go_to": "ก่อนอื่น ไปที่",
|
||||||
"login_if_not_logged_in": "ยังไม่ได้เข้าสู่ระบบ ให้เข้าสู่ระบบ/ลงทะเบียน",
|
"login_if_not_logged_in": "ยังไม่ได้เข้าสู่ระบบ ให้เข้าสู่ระบบ/ลงทะเบียน",
|
||||||
"step_2": "ขั้นที่ 2",
|
"step_2": "ขั้นที่ 2",
|
||||||
"step_2_steps": "1. หลังจากเข้าสู่ระบบแล้ว กด F12 หรือ คลิกขวาที่เมาส์ > ตรวจสอบเพื่อเปิด Devtools เบราว์เซอร์\n2. จากนั้นไปที่แท็บ \"แอปพลิเคชัน\" (Chrome, Edge, Brave เป็นต้น) หรือแท็บ \"ที่เก็บข้อมูล\" (Firefox, Palemoon เป็นต้น)\n3. ไปที่ส่วน \"คุกกี้\" แล้วไปที่ subsection \"https: //accounts.spotify.com\"",
|
"step_2_steps": "1. หลังจากเข้าสู่ระบบแล้ว กด F12 หรือ คลิกขวาที่เมาส์ > ตรวจสอบเพื่อเปิด Devtools เบราว์เซอร์\n2. จากนั้นไปที่แท็บ \"แอปพลิเคชัน\" (Chrome, Edge, Brave เป็นต้น) หรือแท็บ \"ที่เก็บข้อมูล\" (Firefox, Pale Moon เป็นต้น)\n3. ไปที่ส่วน \"คุกกี้\" แล้วไปที่ subsection \"https: //accounts.spotify.com\"",
|
||||||
"step_3": "ขั้นที่ 3",
|
"step_3": "ขั้นที่ 3",
|
||||||
"step_3_steps": "คัดลอกค่าคุกกี้ \"sp_dc\"",
|
"step_3_steps": "คัดลอกค่าคุกกี้ \"sp_dc\"",
|
||||||
"success_emoji": "สำเร็จ",
|
"success_emoji": "สำเร็จ",
|
||||||
@ -199,13 +199,13 @@
|
|||||||
"add_genres": "เพิ่มประเภท",
|
"add_genres": "เพิ่มประเภท",
|
||||||
"country": "ประเทศ",
|
"country": "ประเทศ",
|
||||||
"number_of_tracks_generate": "จำนวนแทร็กที่จะสร้าง",
|
"number_of_tracks_generate": "จำนวนแทร็กที่จะสร้าง",
|
||||||
"acousticness": "อะคูสติก",
|
"not_acoustic": "อะคูสติก",
|
||||||
"danceability": "ความสามารถในการเต้น",
|
"dance_ability": "ความสามารถในการเต้น",
|
||||||
"energy": "พลัง",
|
"energy": "พลัง",
|
||||||
"instrumentalness": "บรรเลง",
|
"not_instrumental": "บรรเลง",
|
||||||
"liveness": "ความสด",
|
"liveness": "ความสด",
|
||||||
"loudness": "ความดัง",
|
"loudness": "ความดัง",
|
||||||
"speechiness": "การพูด",
|
"talkative": "การพูด",
|
||||||
"valence": "ความสุข",
|
"valence": "ความสุข",
|
||||||
"popularity": "ความนิยม",
|
"popularity": "ความนิยม",
|
||||||
"key": "คีย์",
|
"key": "คีย์",
|
||||||
@ -244,7 +244,7 @@
|
|||||||
"sort_newest": "เรียงตามการเพิ่มใหม่ล่าสุด",
|
"sort_newest": "เรียงตามการเพิ่มใหม่ล่าสุด",
|
||||||
"sort_oldest": "เรียงตามการเพิ่มเก่าสุด",
|
"sort_oldest": "เรียงตามการเพิ่มเก่าสุด",
|
||||||
"sleep_timer": "ตั้งเวลาปิด",
|
"sleep_timer": "ตั้งเวลาปิด",
|
||||||
"mins": "{minutes} นาที",
|
"minutes": "{minutes} นาที",
|
||||||
"hours": "{hours} ชั่วโมง",
|
"hours": "{hours} ชั่วโมง",
|
||||||
"hour": "{hours} ชั่วโมง",
|
"hour": "{hours} ชั่วโมง",
|
||||||
"custom_hours": "ชั่วโมงที่กำหนดเอง",
|
"custom_hours": "ชั่วโมงที่กำหนดเอง",
|
||||||
@ -255,7 +255,7 @@
|
|||||||
"audio_source": "แหล่งที่มาของเสียง",
|
"audio_source": "แหล่งที่มาของเสียง",
|
||||||
"ok": "ตกลง",
|
"ok": "ตกลง",
|
||||||
"failed_to_encrypt": "เข้ารหัสล้มเหลว",
|
"failed_to_encrypt": "เข้ารหัสล้มเหลว",
|
||||||
"encryption_failed_warning": "Spotube ใช้การเข้ารหัสเพื่อเก็บข้อมูลของคุณอย่างปลอดภัย แต่ไม่สามารถทำได้ ดังนั้นจะเปลี่ยนเป็นการจัดเก็บที่ไม่ปลอดภัย\nหากคุณใช้ Linux โปรดตรวจสอบว่าคุณได้ติดตั้งบริการลับ (gnome-keyring, kde-wallet, keepassxc เป็นต้น)",
|
"encryption_failed_warning": "Spotube ใช้การเข้ารหัสเพื่อเก็บข้อมูลของคุณอย่างปลอดภัย แต่ไม่สามารถทำได้ ดังนั้นจะเปลี่ยนเป็นการจัดเก็บที่ไม่ปลอดภัย\nหากคุณใช้ Linux โปรดตรวจสอบว่าคุณได้ติดตั้งบริการลับ (gnome-keyring, kde-wallet, KeePassXC เป็นต้น)",
|
||||||
"querying_info": "กำลังดึงข้อมูล...",
|
"querying_info": "กำลังดึงข้อมูล...",
|
||||||
"piped_api_down": "Piped API ไม่ทำงาน",
|
"piped_api_down": "Piped API ไม่ทำงาน",
|
||||||
"piped_down_error_instructions": "Piped instance {pipedInstance} ไม่ทำงานขณะนี้\n\nเปลี่ยนอินสแตนซ์หรือเปลี่ยน 'ประเภท API' เป็น YouTube API อย่างเป็นทางการ\n\nอย่าลืมรีสตาร์ทแอปหลังจากเปลี่ยน",
|
"piped_down_error_instructions": "Piped instance {pipedInstance} ไม่ทำงานขณะนี้\n\nเปลี่ยนอินสแตนซ์หรือเปลี่ยน 'ประเภท API' เป็น YouTube API อย่างเป็นทางการ\n\nอย่าลืมรีสตาร์ทแอปหลังจากเปลี่ยน",
|
||||||
@ -367,7 +367,7 @@
|
|||||||
"user_profile": "โปรไฟล์ผู้ใช้",
|
"user_profile": "โปรไฟล์ผู้ใช้",
|
||||||
"count_plays": "{count} การเล่น",
|
"count_plays": "{count} การเล่น",
|
||||||
"streaming_fees_hypothetical": "*คำนวณจากการจ่ายเงินต่อการสตรีมของ Spotify\nระหว่าง $0.003 ถึง $0.005 นี่เป็นการคำนวณสมมุติ\nเพื่อให้ข้อมูลแก่ผู้ใช้เกี่ยวกับจำนวนเงินที่พวกเขา\nอาจจะจ่ายให้กับศิลปินหากพวกเขาฟังเพลงของพวกเขาใน Spotify",
|
"streaming_fees_hypothetical": "*คำนวณจากการจ่ายเงินต่อการสตรีมของ Spotify\nระหว่าง $0.003 ถึง $0.005 นี่เป็นการคำนวณสมมุติ\nเพื่อให้ข้อมูลแก่ผู้ใช้เกี่ยวกับจำนวนเงินที่พวกเขา\nอาจจะจ่ายให้กับศิลปินหากพวกเขาฟังเพลงของพวกเขาใน Spotify",
|
||||||
"count_mins": "{minutes} นาที",
|
"count_minutes": "{minutes} นาที",
|
||||||
"summary_minutes": "นาที",
|
"summary_minutes": "นาที",
|
||||||
"summary_listened_to_music": "ฟังเพลง",
|
"summary_listened_to_music": "ฟังเพลง",
|
||||||
"summary_songs": "เพลง",
|
"summary_songs": "เพลง",
|
||||||
@ -384,8 +384,8 @@
|
|||||||
"streamed_songs": "เพลงที่สตรีม",
|
"streamed_songs": "เพลงที่สตรีม",
|
||||||
"count_streams": "{count} สตรีม",
|
"count_streams": "{count} สตรีม",
|
||||||
"owned_by_you": "เป็นเจ้าของโดยคุณ",
|
"owned_by_you": "เป็นเจ้าของโดยคุณ",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} คัดลอกไปที่คลิปบอร์ดแล้ว",
|
"copied_share_url_to_clipboard": "{shareUrl} คัดลอกไปที่คลิปบอร์ดแล้ว",
|
||||||
"spotify_hipotetical_calculation": "*คำนวณตามการจ่ายต่อสตรีมของ Spotify\nซึ่งอยู่ในช่วง $0.003 ถึง $0.005 นี่เป็นการคำนวณสมมุติ\nเพื่อให้ผู้ใช้ทราบว่าพวกเขาจะจ่ายเงินให้ศิลปินเท่าไหร่\nหากพวกเขาฟังเพลงของพวกเขาใน Spotify.",
|
"spotify_hypothetical_calculation": "*คำนวณตามการจ่ายต่อสตรีมของ Spotify\nซึ่งอยู่ในช่วง $0.003 ถึง $0.005 นี่เป็นการคำนวณสมมุติ\nเพื่อให้ผู้ใช้ทราบว่าพวกเขาจะจ่ายเงินให้ศิลปินเท่าไหร่\nหากพวกเขาฟังเพลงของพวกเขาใน Spotify.",
|
||||||
"webview_not_found": "ไม่พบ Webview",
|
"webview_not_found": "ไม่พบ Webview",
|
||||||
"webview_not_found_description": "ไม่พบ runtime ของ Webview บนอุปกรณ์ของคุณ\nหากติดตั้งแล้วตรวจสอบให้แน่ใจว่าอยู่ใน environment PATH\n\nหลังจากติดตั้งแล้ว ให้รีสตาร์ทแอป",
|
"webview_not_found_description": "ไม่พบ runtime ของ Webview บนอุปกรณ์ของคุณ\nหากติดตั้งแล้วตรวจสอบให้แน่ใจว่าอยู่ใน environment PATH\n\nหลังจากติดตั้งแล้ว ให้รีสตาร์ทแอป",
|
||||||
"unsupported_platform": "แพลตฟอร์มไม่รองรับ",
|
"unsupported_platform": "แพลตฟอร์มไม่รองรับ",
|
||||||
|
@ -1,428 +1,428 @@
|
|||||||
{
|
{
|
||||||
"guest": "Bisita",
|
"guest": "Bisita",
|
||||||
"browse": "Mag-browse",
|
"browse": "Mag-browse",
|
||||||
"search": "Maghanap",
|
"search": "Maghanap",
|
||||||
"library": "Silid-aklatan",
|
"library": "Silid-aklatan",
|
||||||
"lyrics": "Mga Liriko",
|
"lyrics": "Mga Liriko",
|
||||||
"settings": "Mga Setting",
|
"settings": "Mga Setting",
|
||||||
"genre_categories_filter": "I-filter ang mga kategorya o genre...",
|
"genre_categories_filter": "I-filter ang mga kategorya o genre...",
|
||||||
"genre": "Genre",
|
"genre": "Genre",
|
||||||
"personalized": "Naka-personalize",
|
"personalized": "Naka-personalize",
|
||||||
"featured": "Tampok",
|
"featured": "Tampok",
|
||||||
"new_releases": "Mga Bagong Paglabas",
|
"new_releases": "Mga Bagong Paglabas",
|
||||||
"songs": "Mga Kanta",
|
"songs": "Mga Kanta",
|
||||||
"playing_track": "Tumutugtog ang {track}",
|
"playing_track": "Tumutugtog ang {track}",
|
||||||
"queue_clear_alert": "Ito ay magbubura ng kasalukuyang pila. {track_length} na mga track ang tatanggalin\nGusto mo bang magpatuloy?",
|
"queue_clear_alert": "Ito ay magbubura ng kasalukuyang pila. {track_length} na mga track ang tatanggalin\nGusto mo bang magpatuloy?",
|
||||||
"load_more": "Mag-load pa",
|
"load_more": "Mag-load pa",
|
||||||
"playlists": "Mga Playlist",
|
"playlists": "Mga Playlist",
|
||||||
"artists": "Mga Artista",
|
"artists": "Mga Artista",
|
||||||
"albums": "Mga Album",
|
"albums": "Mga Album",
|
||||||
"tracks": "Mga Track",
|
"tracks": "Mga Track",
|
||||||
"downloads": "Mga Download",
|
"downloads": "Mga Download",
|
||||||
"filter_playlists": "I-filter ang iyong mga playlist...",
|
"filter_playlists": "I-filter ang iyong mga playlist...",
|
||||||
"liked_tracks": "Mga Nagustuhang Track",
|
"liked_tracks": "Mga Nagustuhang Track",
|
||||||
"liked_tracks_description": "Lahat ng mga track na iyong nagustuhan",
|
"liked_tracks_description": "Lahat ng mga track na iyong nagustuhan",
|
||||||
"playlist": "Playlist",
|
"playlist": "Playlist",
|
||||||
"create_a_playlist": "Gumawa ng playlist",
|
"create_a_playlist": "Gumawa ng playlist",
|
||||||
"update_playlist": "I-update ang playlist",
|
"update_playlist": "I-update ang playlist",
|
||||||
"create": "Lumikha",
|
"create": "Lumikha",
|
||||||
"cancel": "Ikansela",
|
"cancel": "Ikansela",
|
||||||
"update": "I-update",
|
"update": "I-update",
|
||||||
"playlist_name": "Pangalan ng Playlist",
|
"playlist_name": "Pangalan ng Playlist",
|
||||||
"name_of_playlist": "Pangalan ng playlist",
|
"name_of_playlist": "Pangalan ng playlist",
|
||||||
"description": "Paglalarawan",
|
"description": "Paglalarawan",
|
||||||
"public": "Pampubliko",
|
"public": "Pampubliko",
|
||||||
"collaborative": "Pakikipagtulungan",
|
"collaborative": "Pakikipagtulungan",
|
||||||
"search_local_tracks": "Maghanap ng mga lokal na track...",
|
"search_local_tracks": "Maghanap ng mga lokal na track...",
|
||||||
"play": "I-play",
|
"play": "I-play",
|
||||||
"delete": "Burahin",
|
"delete": "Burahin",
|
||||||
"none": "Wala",
|
"none": "Wala",
|
||||||
"sort_a_z": "Ayusin ayon sa A-Z",
|
"sort_a_z": "Ayusin ayon sa A-Z",
|
||||||
"sort_z_a": "Ayusin ayon sa Z-A",
|
"sort_z_a": "Ayusin ayon sa Z-A",
|
||||||
"sort_artist": "Ayusin ayon sa Artista",
|
"sort_artist": "Ayusin ayon sa Artista",
|
||||||
"sort_album": "Ayusin ayon sa Album",
|
"sort_album": "Ayusin ayon sa Album",
|
||||||
"sort_duration": "Ayusin ayon sa Tagal",
|
"sort_duration": "Ayusin ayon sa Tagal",
|
||||||
"sort_tracks": "Ayusin ang mga Track",
|
"sort_tracks": "Ayusin ang mga Track",
|
||||||
"currently_downloading": "Kasalukuyang Nagda-download ({tracks_length})",
|
"currently_downloading": "Kasalukuyang Nagda-download ({tracks_length})",
|
||||||
"cancel_all": "Kanselahin Lahat",
|
"cancel_all": "Kanselahin Lahat",
|
||||||
"filter_artist": "I-filter ang mga artista...",
|
"filter_artist": "I-filter ang mga artista...",
|
||||||
"followers": "{followers} na mga Tagasunod",
|
"followers": "{followers} na mga Tagasunod",
|
||||||
"add_artist_to_blacklist": "Idagdag ang artista sa blacklist",
|
"add_artist_to_blacklist": "Idagdag ang artista sa blacklist",
|
||||||
"top_tracks": "Mga Nangungunang Track",
|
"top_tracks": "Mga Nangungunang Track",
|
||||||
"fans_also_like": "Gusto rin ng mga tagahanga",
|
"fans_also_like": "Gusto rin ng mga tagahanga",
|
||||||
"loading": "Naglo-load...",
|
"loading": "Naglo-load...",
|
||||||
"artist": "Artista",
|
"artist": "Artista",
|
||||||
"blacklisted": "Naka-blacklist",
|
"blacklisted": "Naka-blacklist",
|
||||||
"following": "Sinusundan",
|
"following": "Sinusundan",
|
||||||
"follow": "Sundan",
|
"follow": "Sundan",
|
||||||
"artist_url_copied": "Na-copy sa clipboard ang URL ng artista",
|
"artist_url_copied": "Na-copy sa clipboard ang URL ng artista",
|
||||||
"added_to_queue": "Idinagdag ang {tracks} na mga track sa pila",
|
"added_to_queue": "Idinagdag ang {tracks} na mga track sa pila",
|
||||||
"filter_albums": "I-filter ang mga album...",
|
"filter_albums": "I-filter ang mga album...",
|
||||||
"synced": "Naka-sync",
|
"synced": "Naka-sync",
|
||||||
"plain": "Simpleng",
|
"plain": "Simpleng",
|
||||||
"shuffle": "I-shuffle",
|
"shuffle": "I-shuffle",
|
||||||
"search_tracks": "Maghanap ng mga track...",
|
"search_tracks": "Maghanap ng mga track...",
|
||||||
"released": "Inilabas",
|
"released": "Inilabas",
|
||||||
"error": "Error {error}",
|
"error": "Error {error}",
|
||||||
"title": "Pamagat",
|
"title": "Pamagat",
|
||||||
"time": "Oras",
|
"time": "Oras",
|
||||||
"more_actions": "Higit pang mga aksyon",
|
"more_actions": "Higit pang mga aksyon",
|
||||||
"download_count": "I-download ({count})",
|
"download_count": "I-download ({count})",
|
||||||
"add_count_to_playlist": "Idagdag ({count}) sa Playlist",
|
"add_count_to_playlist": "Idagdag ({count}) sa Playlist",
|
||||||
"add_count_to_queue": "Idagdag ({count}) sa Pila",
|
"add_count_to_queue": "Idagdag ({count}) sa Pila",
|
||||||
"play_count_next": "I-play ({count}) kasunod",
|
"play_count_next": "I-play ({count}) kasunod",
|
||||||
"album": "Album",
|
"album": "Album",
|
||||||
"copied_to_clipboard": "Na-copy ang {data} sa clipboard",
|
"copied_to_clipboard": "Na-copy ang {data} sa clipboard",
|
||||||
"add_to_following_playlists": "Idagdag ang {track} sa mga sumusunod na Playlist",
|
"add_to_following_playlists": "Idagdag ang {track} sa mga sumusunod na Playlist",
|
||||||
"add": "Idagdag",
|
"add": "Idagdag",
|
||||||
"added_track_to_queue": "Idinagdag ang {track} sa pila",
|
"added_track_to_queue": "Idinagdag ang {track} sa pila",
|
||||||
"add_to_queue": "Idagdag sa pila",
|
"add_to_queue": "Idagdag sa pila",
|
||||||
"track_will_play_next": "Ang {track} ay tutugtog susunod",
|
"track_will_play_next": "Ang {track} ay tutugtog susunod",
|
||||||
"play_next": "I-play susunod",
|
"play_next": "I-play susunod",
|
||||||
"removed_track_from_queue": "Tinanggal ang {track} mula sa pila",
|
"removed_track_from_queue": "Tinanggal ang {track} mula sa pila",
|
||||||
"remove_from_queue": "Alisin mula sa pila",
|
"remove_from_queue": "Alisin mula sa pila",
|
||||||
"remove_from_favorites": "Alisin mula sa mga paborito",
|
"remove_from_favorites": "Alisin mula sa mga paborito",
|
||||||
"save_as_favorite": "I-save bilang paborito",
|
"save_as_favorite": "I-save bilang paborito",
|
||||||
"add_to_playlist": "Idagdag sa playlist",
|
"add_to_playlist": "Idagdag sa playlist",
|
||||||
"remove_from_playlist": "Alisin mula sa playlist",
|
"remove_from_playlist": "Alisin mula sa playlist",
|
||||||
"add_to_blacklist": "Idagdag sa blacklist",
|
"add_to_blacklist": "Idagdag sa blacklist",
|
||||||
"remove_from_blacklist": "Alisin mula sa blacklist",
|
"remove_from_blacklist": "Alisin mula sa blacklist",
|
||||||
"share": "Ibahagi",
|
"share": "Ibahagi",
|
||||||
"mini_player": "Mini Player",
|
"mini_player": "Mini Player",
|
||||||
"slide_to_seek": "I-slide para mag-seek pasulong o pabalik",
|
"slide_to_seek": "I-slide para mag-seek pasulong o pabalik",
|
||||||
"shuffle_playlist": "I-shuffle ang playlist",
|
"shuffle_playlist": "I-shuffle ang playlist",
|
||||||
"unshuffle_playlist": "I-unshuffle ang playlist",
|
"not_shuffle_playlist": "I-unshuffle ang playlist",
|
||||||
"previous_track": "Nakaraang track",
|
"previous_track": "Nakaraang track",
|
||||||
"next_track": "Susunod na track",
|
"next_track": "Susunod na track",
|
||||||
"pause_playback": "I-pause ang Playback",
|
"pause_playback": "I-pause ang Playback",
|
||||||
"resume_playback": "Ipagpatuloy ang Playback",
|
"resume_playback": "Ipagpatuloy ang Playback",
|
||||||
"loop_track": "I-loop ang track",
|
"loop_track": "I-loop ang track",
|
||||||
"no_loop": "Walang loop",
|
"no_loop": "Walang loop",
|
||||||
"repeat_playlist": "Ulitin ang playlist",
|
"repeat_playlist": "Ulitin ang playlist",
|
||||||
"queue": "Pila",
|
"queue": "Pila",
|
||||||
"alternative_track_sources": "Alternatibong mga pinagmulan ng track",
|
"alternative_track_sources": "Alternatibong mga pinagmulan ng track",
|
||||||
"download_track": "I-download ang track",
|
"download_track": "I-download ang track",
|
||||||
"tracks_in_queue": "{tracks} na mga track sa pila",
|
"tracks_in_queue": "{tracks} na mga track sa pila",
|
||||||
"clear_all": "Burahin lahat",
|
"clear_all": "Burahin lahat",
|
||||||
"show_hide_ui_on_hover": "Ipakita/Itago ang UI sa hover",
|
"show_hide_ui_on_hover": "Ipakita/Itago ang UI sa hover",
|
||||||
"always_on_top": "Palaging nasa ibabaw",
|
"always_on_top": "Palaging nasa ibabaw",
|
||||||
"exit_mini_player": "Lumabas sa Mini player",
|
"exit_mini_player": "Lumabas sa Mini player",
|
||||||
"download_location": "Lokasyon ng pag-download",
|
"download_location": "Lokasyon ng pag-download",
|
||||||
"local_library": "Lokal na silid-aklatan",
|
"local_library": "Lokal na silid-aklatan",
|
||||||
"add_library_location": "Idagdag sa silid-aklatan",
|
"add_library_location": "Idagdag sa silid-aklatan",
|
||||||
"remove_library_location": "Alisin mula sa silid-aklatan",
|
"remove_library_location": "Alisin mula sa silid-aklatan",
|
||||||
"account": "Account",
|
"account": "Account",
|
||||||
"login_with_spotify": "Mag-login gamit ang iyong Spotify account",
|
"login_with_spotify": "Mag-login gamit ang iyong Spotify account",
|
||||||
"connect_with_spotify": "Kumonekta sa Spotify",
|
"connect_with_spotify": "Kumonekta sa Spotify",
|
||||||
"logout": "Mag-logout",
|
"logout": "Mag-logout",
|
||||||
"logout_of_this_account": "Mag-logout sa account na ito",
|
"logout_of_this_account": "Mag-logout sa account na ito",
|
||||||
"language_region": "Wika at Rehiyon",
|
"language_region": "Wika at Rehiyon",
|
||||||
"language": "Wika",
|
"language": "Wika",
|
||||||
"system_default": "Default ng Sistema",
|
"system_default": "Default ng Sistema",
|
||||||
"market_place_region": "Rehiyon ng Marketplace",
|
"market_place_region": "Rehiyon ng Marketplace",
|
||||||
"recommendation_country": "Bansang Inirerekomenda",
|
"recommendation_country": "Bansang Inirerekomenda",
|
||||||
"appearance": "Hitsura",
|
"appearance": "Hitsura",
|
||||||
"layout_mode": "Mode ng Layout",
|
"layout_mode": "Mode ng Layout",
|
||||||
"override_layout_settings": "I-override ang mga setting ng responsive layout mode",
|
"override_layout_settings": "I-override ang mga setting ng responsive layout mode",
|
||||||
"adaptive": "Umaangkop",
|
"adaptive": "Umaangkop",
|
||||||
"compact": "Kompakto",
|
"compact": "Kompakto",
|
||||||
"extended": "Pinalawig",
|
"extended": "Pinalawig",
|
||||||
"theme": "Tema",
|
"theme": "Tema",
|
||||||
"dark": "Madilim",
|
"dark": "Madilim",
|
||||||
"light": "Maliwanag",
|
"light": "Maliwanag",
|
||||||
"system": "Sistema",
|
"system": "Sistema",
|
||||||
"accent_color": "Kulay ng Accent",
|
"accent_color": "Kulay ng Accent",
|
||||||
"sync_album_color": "I-sync ang kulay ng album",
|
"sync_album_color": "I-sync ang kulay ng album",
|
||||||
"sync_album_color_description": "Ginagamit ang pangunahing kulay ng album art bilang kulay ng accent",
|
"sync_album_color_description": "Ginagamit ang pangunahing kulay ng album art bilang kulay ng accent",
|
||||||
"playback": "Playback",
|
"playback": "Playback",
|
||||||
"audio_quality": "Kalidad ng Audio",
|
"audio_quality": "Kalidad ng Audio",
|
||||||
"high": "Mataas",
|
"high": "Mataas",
|
||||||
"low": "Mababa",
|
"low": "Mababa",
|
||||||
"pre_download_play": "Mag-pre-download at i-play",
|
"pre_download_play": "Mag-pre-download at i-play",
|
||||||
"pre_download_play_description": "Sa halip na mag-stream ng audio, mag-download ng bytes at i-play sa halip (Inirerekomenda para sa mga gumagamit ng mataas na bandwidth)",
|
"pre_download_play_description": "Sa halip na mag-stream ng audio, mag-download ng bytes at i-play sa halip (Inirerekomenda para sa mga gumagamit ng mataas na bandwidth)",
|
||||||
"skip_non_music": "Laktawan ang mga segment na hindi musika (SponsorBlock)",
|
"skip_non_music": "Laktawan ang mga segment na hindi musika (SponsorBlock)",
|
||||||
"blacklist_description": "Mga track at artista na nasa blacklist",
|
"blacklist_description": "Mga track at artista na nasa blacklist",
|
||||||
"wait_for_download_to_finish": "Mangyaring maghintay para matapos ang kasalukuyang pag-download",
|
"wait_for_download_to_finish": "Mangyaring maghintay para matapos ang kasalukuyang pag-download",
|
||||||
"desktop": "Desktop",
|
"desktop": "Desktop",
|
||||||
"close_behavior": "Pag-uugali ng Pagsara",
|
"close_behavior": "Pag-uugali ng Pagsara",
|
||||||
"close": "Isara",
|
"close": "Isara",
|
||||||
"minimize_to_tray": "I-minimize sa tray",
|
"minimize_to_tray": "I-minimize sa tray",
|
||||||
"show_tray_icon": "Ipakita ang icon ng System tray",
|
"show_tray_icon": "Ipakita ang icon ng System tray",
|
||||||
"about": "Tungkol sa",
|
"about": "Tungkol sa",
|
||||||
"u_love_spotube": "Alam naming gusto mo ang Spotube",
|
"u_love_spotube": "Alam naming gusto mo ang Spotube",
|
||||||
"check_for_updates": "Maghanap ng mga update",
|
"check_for_updates": "Maghanap ng mga update",
|
||||||
"about_spotube": "Tungkol sa Spotube",
|
"about_spotube": "Tungkol sa Spotube",
|
||||||
"blacklist": "Blacklist",
|
"blacklist": "Blacklist",
|
||||||
"please_sponsor": "Mangyaring Mag-sponsor/Mag-donate",
|
"please_sponsor": "Mangyaring Mag-sponsor/Mag-donate",
|
||||||
"spotube_description": "Spotube, isang magaan, cross-platform, libreng-para-sa-lahat na spotify client",
|
"spotube_description": "Spotube, isang magaan, cross-platform, libreng-para-sa-lahat na spotify client",
|
||||||
"version": "Bersyon",
|
"version": "Bersyon",
|
||||||
"build_number": "Build Number",
|
"build_number": "Build Number",
|
||||||
"founder": "Nagtatag",
|
"founder": "Nagtatag",
|
||||||
"repository": "Repository",
|
"repository": "Repository",
|
||||||
"bug_issues": "Bug+Mga Isyu",
|
"bug_issues": "Bug+Mga Isyu",
|
||||||
"made_with": "Ginawa nang may ❤️ sa Bangladesh🇧🇩",
|
"made_with": "Ginawa nang may ❤️ sa Bangladesh🇧🇩",
|
||||||
"kingkor_roy_tirtho": "Kingkor Roy Tirtho",
|
"kingkor_roy_tirtho": "Kingkor Roy Tirtho",
|
||||||
"copyright": "© 2021-{current_year} Kingkor Roy Tirtho",
|
"copyright": "© 2021-{current_year} Kingkor Roy Tirtho",
|
||||||
"license": "Lisensya",
|
"license": "Lisensya",
|
||||||
"add_spotify_credentials": "Idagdag ang iyong mga kredensyal sa spotify para makapagsimula",
|
"add_spotify_credentials": "Idagdag ang iyong mga kredensyal sa spotify para makapagsimula",
|
||||||
"credentials_will_not_be_shared_disclaimer": "Huwag mag-alala, ang alinman sa iyong mga kredensyal ay hindi kokolektahin o ibabahagi sa sinuman",
|
"credentials_will_not_be_shared_disclaimer": "Huwag mag-alala, ang alinman sa iyong mga kredensyal ay hindi kokolektahin o ibabahagi sa sinuman",
|
||||||
"know_how_to_login": "Hindi mo alam kung paano gawin ito?",
|
"know_how_to_login": "Hindi mo alam kung paano gawin ito?",
|
||||||
"follow_step_by_step_guide": "Sundin ang Hakbang-hakbang na gabay",
|
"follow_step_by_step_guide": "Sundin ang Hakbang-hakbang na gabay",
|
||||||
"spotify_cookie": "Spotify {name} Cookie",
|
"spotify_cookie": "Spotify {name} Cookie",
|
||||||
"cookie_name_cookie": "{name} Cookie",
|
"cookie_name_cookie": "{name} Cookie",
|
||||||
"fill_in_all_fields": "Mangyaring punan ang lahat ng field",
|
"fill_in_all_fields": "Mangyaring punan ang lahat ng field",
|
||||||
"submit": "Isumite",
|
"submit": "Isumite",
|
||||||
"exit": "Lumabas",
|
"exit": "Lumabas",
|
||||||
"previous": "Nakaraan",
|
"previous": "Nakaraan",
|
||||||
"next": "Susunod",
|
"next": "Susunod",
|
||||||
"done": "Tapos na",
|
"done": "Tapos na",
|
||||||
"step_1": "Hakbang 1",
|
"step_1": "Hakbang 1",
|
||||||
"first_go_to": "Una, Pumunta sa",
|
"first_go_to": "Una, Pumunta sa",
|
||||||
"login_if_not_logged_in": "at Mag-login/Mag-signup kung hindi ka naka-log in",
|
"login_if_not_logged_in": "at Mag-login/Mag-signup kung hindi ka naka-log in",
|
||||||
"step_2": "Hakbang 2",
|
"step_2": "Hakbang 2",
|
||||||
"step_2_steps": "1. Kapag naka-log in ka na, pindutin ang F12 o i-right click ang Mouse > Inspect para Buksan ang Browser devtools.\n2. Pagkatapos ay pumunta sa \"Application\" Tab (Chrome, Edge, Brave atbp..) o \"Storage\" Tab (Firefox, Palemoon atbp..)\n3. Pumunta sa \"Cookies\" na seksyon at pagkatapos sa \"https://accounts.spotify.com\" na subseksyon",
|
"step_2_steps": "1. Kapag naka-log in ka na, pindutin ang F12 o i-right click ang Mouse > Inspect para Buksan ang Browser devtools.\n2. Pagkatapos ay pumunta sa \"Application\" Tab (Chrome, Edge, Brave atbp..) o \"Storage\" Tab (Firefox, Pale Moon atbp..)\n3. Pumunta sa \"Cookies\" na seksyon at pagkatapos sa \"https://accounts.spotify.com\" na subseksyon",
|
||||||
"step_3": "Hakbang 3",
|
"step_3": "Hakbang 3",
|
||||||
"step_3_steps": "Kopyahin ang halaga ng \"sp_dc\" Cookie",
|
"step_3_steps": "Kopyahin ang halaga ng \"sp_dc\" Cookie",
|
||||||
"success_emoji": "Tagumpay🥳",
|
"success_emoji": "Tagumpay🥳",
|
||||||
"success_message": "Ngayon ay matagumpay kang Naka-log in gamit ang iyong Spotify account. Magaling, kaibigan!",
|
"success_message": "Ngayon ay matagumpay kang Naka-log in gamit ang iyong Spotify account. Magaling, kaibigan!",
|
||||||
"step_4": "Hakbang 4",
|
"step_4": "Hakbang 4",
|
||||||
"step_4_steps": "I-paste ang na-kopyang halaga ng \"sp_dc\"",
|
"step_4_steps": "I-paste ang na-kopyang halaga ng \"sp_dc\"",
|
||||||
"something_went_wrong": "May nangyaring mali",
|
"something_went_wrong": "May nangyaring mali",
|
||||||
"piped_instance": "Instance ng Piped Server",
|
"piped_instance": "Instance ng Piped Server",
|
||||||
"piped_description": "Ang instance ng Piped server na gagamitin para sa pagtutugma ng track",
|
"piped_description": "Ang instance ng Piped server na gagamitin para sa pagtutugma ng track",
|
||||||
"piped_warning": "Maaaring hindi gumagana nang mabuti ang ilan sa mga ito. Kaya gamitin sa sarili mong peligro",
|
"piped_warning": "Maaaring hindi gumagana nang mabuti ang ilan sa mga ito. Kaya gamitin sa sarili mong peligro",
|
||||||
"invidious_instance": "Instance ng Invidious Server",
|
"invidious_instance": "Instance ng Invidious Server",
|
||||||
"invidious_description": "Ang instance ng Invidious server na gagamitin para sa pagtutugma ng track",
|
"invidious_description": "Ang instance ng Invidious server na gagamitin para sa pagtutugma ng track",
|
||||||
"invidious_warning": "Maaaring hindi gumagana nang mabuti ang ilan sa mga ito. Kaya gamitin sa sarili mong peligro",
|
"invidious_warning": "Maaaring hindi gumagana nang mabuti ang ilan sa mga ito. Kaya gamitin sa sarili mong peligro",
|
||||||
"generate": "Gumawa",
|
"generate": "Gumawa",
|
||||||
"track_exists": "Ang Track na {track} ay umiiral na",
|
"track_exists": "Ang Track na {track} ay umiiral na",
|
||||||
"replace_downloaded_tracks": "Palitan ang lahat ng na-download na mga track",
|
"replace_downloaded_tracks": "Palitan ang lahat ng na-download na mga track",
|
||||||
"skip_download_tracks": "Laktawan ang pag-download ng lahat ng na-download na mga track",
|
"skip_download_tracks": "Laktawan ang pag-download ng lahat ng na-download na mga track",
|
||||||
"do_you_want_to_replace": "Gusto mo bang palitan ang umiiral na track??",
|
"do_you_want_to_replace": "Gusto mo bang palitan ang umiiral na track??",
|
||||||
"replace": "Palitan",
|
"replace": "Palitan",
|
||||||
"skip": "Laktawan",
|
"skip": "Laktawan",
|
||||||
"select_up_to_count_type": "Pumili ng hanggang {count} {type}",
|
"select_up_to_count_type": "Pumili ng hanggang {count} {type}",
|
||||||
"select_genres": "Pumili ng mga Genre",
|
"select_genres": "Pumili ng mga Genre",
|
||||||
"add_genres": "Magdagdag ng mga Genre",
|
"add_genres": "Magdagdag ng mga Genre",
|
||||||
"country": "Bansa",
|
"country": "Bansa",
|
||||||
"number_of_tracks_generate": "Bilang ng mga track na gagawin",
|
"number_of_tracks_generate": "Bilang ng mga track na gagawin",
|
||||||
"acousticness": "Acoustic-ness",
|
"not_acoustic": "Acoustic-ness",
|
||||||
"danceability": "Kakayahang Sayawin",
|
"dance_ability": "Kakayahang Sayawin",
|
||||||
"energy": "Enerhiya",
|
"energy": "Enerhiya",
|
||||||
"instrumentalness": "Instrumental-ness",
|
"not_instrumental": "Instrumental-ness",
|
||||||
"liveness": "Liveness",
|
"liveness": "Liveness",
|
||||||
"loudness": "Lakas",
|
"loudness": "Lakas",
|
||||||
"speechiness": "Pagsasalita",
|
"talkative": "Pagsasalita",
|
||||||
"valence": "Valence",
|
"valence": "Valence",
|
||||||
"popularity": "Popularidad",
|
"popularity": "Popularidad",
|
||||||
"key": "Key",
|
"key": "Key",
|
||||||
"duration": "Tagal (s)",
|
"duration": "Tagal (s)",
|
||||||
"tempo": "Tempo (BPM)",
|
"tempo": "Tempo (BPM)",
|
||||||
"mode": "Mode",
|
"mode": "Mode",
|
||||||
"time_signature": "Time Signature",
|
"time_signature": "Time Signature",
|
||||||
"short": "Maikli",
|
"short": "Maikli",
|
||||||
"medium": "Katamtaman",
|
"medium": "Katamtaman",
|
||||||
"long": "Mahaba",
|
"long": "Mahaba",
|
||||||
"min": "Min",
|
"min": "Min",
|
||||||
"max": "Max",
|
"max": "Max",
|
||||||
"target": "Target",
|
"target": "Target",
|
||||||
"moderate": "Katamtaman",
|
"moderate": "Katamtaman",
|
||||||
"deselect_all": "Alisin ang Pagkakapili sa Lahat",
|
"deselect_all": "Alisin ang Pagkakapili sa Lahat",
|
||||||
"select_all": "Piliin Lahat",
|
"select_all": "Piliin Lahat",
|
||||||
"are_you_sure": "Sigurado ka ba?",
|
"are_you_sure": "Sigurado ka ba?",
|
||||||
"generating_playlist": "Gumagawa ng iyong custom na playlist...",
|
"generating_playlist": "Gumagawa ng iyong custom na playlist...",
|
||||||
"selected_count_tracks": "Napili ang {count} na mga track",
|
"selected_count_tracks": "Napili ang {count} na mga track",
|
||||||
"download_warning": "Kung nag-download ka ng lahat ng Track sa maramihan, malinaw na nagpa-pirate ka ng Musika at nagsasanhi ng pinsala sa creative society ng Musika. Sana ay alam mo ito. Palaging, subukang igalang at suportahan ang masipag na paggawa ng Artist",
|
"download_warning": "Kung nag-download ka ng lahat ng Track sa maramihan, malinaw na nagpa-pirate ka ng Musika at nagsasanhi ng pinsala sa creative society ng Musika. Sana ay alam mo ito. Palaging, subukang igalang at suportahan ang masipag na paggawa ng Artist",
|
||||||
"download_ip_ban_warning": "Sa nga pala, ang iyong IP ay maaaring ma-block sa YouTube dahil sa sobrang mga kahilingan sa pag-download kaysa sa karaniwan. Ang IP block ay nangangahulugang hindi mo magagamit ang YouTube (kahit na naka-log in ka) sa loob ng hindi bababa sa 2-3 buwan mula sa device na may IP na iyon. At hindi pinanghahawakan ng Spotube ang anumang responsibilidad kung mangyayari ito",
|
"download_ip_ban_warning": "Sa nga pala, ang iyong IP ay maaaring ma-block sa YouTube dahil sa sobrang mga kahilingan sa pag-download kaysa sa karaniwan. Ang IP block ay nangangahulugang hindi mo magagamit ang YouTube (kahit na naka-log in ka) sa loob ng hindi bababa sa 2-3 buwan mula sa device na may IP na iyon. At hindi pinanghahawakan ng Spotube ang anumang responsibilidad kung mangyayari ito",
|
||||||
"by_clicking_accept_terms": "Sa pamamagitan ng pag-click sa 'tanggapin', sumasang-ayon ka sa mga sumusunod na tuntunin:",
|
"by_clicking_accept_terms": "Sa pamamagitan ng pag-click sa 'tanggapin', sumasang-ayon ka sa mga sumusunod na tuntunin:",
|
||||||
"download_agreement_1": "Alam kong nagpa-pirate ako ng Musika. Masama ako",
|
"download_agreement_1": "Alam kong nagpa-pirate ako ng Musika. Masama ako",
|
||||||
"download_agreement_2": "Susuportahan ko ang Artist saan man ako maaari at ginagawa ko lang ito dahil wala akong pera para bumili ng kanilang sining",
|
"download_agreement_2": "Susuportahan ko ang Artist saan man ako maaari at ginagawa ko lang ito dahil wala akong pera para bumili ng kanilang sining",
|
||||||
"download_agreement_3": "Lubos kong nauunawaan na ang aking IP ay maaaring ma-block sa YouTube at hindi ko pinanghahawakan ang Spotube o ang kanyang mga may-ari/nag-ambag na responsable para sa anumang aksidente na sanhi ng aking kasalukuyang aksyon",
|
"download_agreement_3": "Lubos kong nauunawaan na ang aking IP ay maaaring ma-block sa YouTube at hindi ko pinanghahawakan ang Spotube o ang kanyang mga may-ari/nag-ambag na responsable para sa anumang aksidente na sanhi ng aking kasalukuyang aksyon",
|
||||||
"decline": "Tanggihan",
|
"decline": "Tanggihan",
|
||||||
"accept": "Tanggapin",
|
"accept": "Tanggapin",
|
||||||
"details": "Mga Detalye",
|
"details": "Mga Detalye",
|
||||||
"youtube": "YouTube",
|
"youtube": "YouTube",
|
||||||
"channel": "Channel",
|
"channel": "Channel",
|
||||||
"likes": "Mga Like",
|
"likes": "Mga Like",
|
||||||
"dislikes": "Mga Dislike",
|
"dislikes": "Mga Dislike",
|
||||||
"views": "Mga View",
|
"views": "Mga View",
|
||||||
"streamUrl": "Stream URL",
|
"streamUrl": "Stream URL",
|
||||||
"stop": "Ihinto",
|
"stop": "Ihinto",
|
||||||
"sort_newest": "Ayusin ayon sa pinakabagong idinagdag",
|
"sort_newest": "Ayusin ayon sa pinakabagong idinagdag",
|
||||||
"sort_oldest": "Ayusin ayon sa pinakalumang idinagdag",
|
"sort_oldest": "Ayusin ayon sa pinakalumang idinagdag",
|
||||||
"sleep_timer": "Sleep Timer",
|
"sleep_timer": "Sleep Timer",
|
||||||
"mins": "{minutes} Minuto",
|
"minutes": "{minutes} Minuto",
|
||||||
"hours": "{hours} Oras",
|
"hours": "{hours} Oras",
|
||||||
"hour": "{hours} Oras",
|
"hour": "{hours} Oras",
|
||||||
"custom_hours": "Custom na Oras",
|
"custom_hours": "Custom na Oras",
|
||||||
"logs": "Mga Log",
|
"logs": "Mga Log",
|
||||||
"developers": "Mga Developer",
|
"developers": "Mga Developer",
|
||||||
"not_logged_in": "Hindi ka naka-log in",
|
"not_logged_in": "Hindi ka naka-log in",
|
||||||
"search_mode": "Mode ng Paghahanap",
|
"search_mode": "Mode ng Paghahanap",
|
||||||
"audio_source": "Pinagmulan ng Audio",
|
"audio_source": "Pinagmulan ng Audio",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"failed_to_encrypt": "Nabigong i-encrypt",
|
"failed_to_encrypt": "Nabigong i-encrypt",
|
||||||
"encryption_failed_warning": "Gumagamit ng encryption ang Spotube para ligtas na i-store ang iyong data. Ngunit nabigo. Kaya babalik ito sa hindi secure na storage\nKung gumagamit ka ng linux, mangyaring tiyakin na mayroon kang anumang secret-service na naka-install (gnome-keyring, kde-wallet, keepassxc atbp)",
|
"encryption_failed_warning": "Gumagamit ng encryption ang Spotube para ligtas na i-store ang iyong data. Ngunit nabigo. Kaya babalik ito sa hindi secure na storage\nKung gumagamit ka ng linux, mangyaring tiyakin na mayroon kang anumang secret-service na naka-install (gnome-keyring, kde-wallet, KeePassXC atbp)",
|
||||||
"querying_info": "Kinukuha ang impormasyon...",
|
"querying_info": "Kinukuha ang impormasyon...",
|
||||||
"piped_api_down": "Ang Piped API ay hindi gumagana",
|
"piped_api_down": "Ang Piped API ay hindi gumagana",
|
||||||
"piped_down_error_instructions": "Ang instance ng Piped na {pipedInstance} ay kasalukuyang hindi gumagana\n\nMaaari mong baguhin ang instance o baguhin ang 'Uri ng API' sa opisyal na YouTube API\n\nSiguraduhing i-restart ang app pagkatapos ng pagbabago",
|
"piped_down_error_instructions": "Ang instance ng Piped na {pipedInstance} ay kasalukuyang hindi gumagana\n\nMaaari mong baguhin ang instance o baguhin ang 'Uri ng API' sa opisyal na YouTube API\n\nSiguraduhing i-restart ang app pagkatapos ng pagbabago",
|
||||||
"you_are_offline": "Kasalukuyan kang offline",
|
"you_are_offline": "Kasalukuyan kang offline",
|
||||||
"connection_restored": "Naibalik na ang iyong koneksyon sa internet",
|
"connection_restored": "Naibalik na ang iyong koneksyon sa internet",
|
||||||
"use_system_title_bar": "Gamitin ang title bar ng system",
|
"use_system_title_bar": "Gamitin ang title bar ng system",
|
||||||
"crunching_results": "Pinaproseso ang mga resulta...",
|
"crunching_results": "Pinaproseso ang mga resulta...",
|
||||||
"search_to_get_results": "Maghanap para makakuha ng mga resulta",
|
"search_to_get_results": "Maghanap para makakuha ng mga resulta",
|
||||||
"use_amoled_mode": "Matingkad na itim na madilim na tema",
|
"use_amoled_mode": "Matingkad na itim na madilim na tema",
|
||||||
"pitch_dark_theme": "AMOLED Mode",
|
"pitch_dark_theme": "AMOLED Mode",
|
||||||
"normalize_audio": "I-normalize ang audio",
|
"normalize_audio": "I-normalize ang audio",
|
||||||
"change_cover": "Baguhin ang cover",
|
"change_cover": "Baguhin ang cover",
|
||||||
"add_cover": "Magdagdag ng cover",
|
"add_cover": "Magdagdag ng cover",
|
||||||
"restore_defaults": "Ibalik ang mga default",
|
"restore_defaults": "Ibalik ang mga default",
|
||||||
"download_music_codec": "Codec para sa pag-download ng musika",
|
"download_music_codec": "Codec para sa pag-download ng musika",
|
||||||
"streaming_music_codec": "Codec para sa pag-stream ng musika",
|
"streaming_music_codec": "Codec para sa pag-stream ng musika",
|
||||||
"login_with_lastfm": "Mag-login gamit ang Last.fm",
|
"login_with_lastfm": "Mag-login gamit ang Last.fm",
|
||||||
"connect": "Kumonekta",
|
"connect": "Kumonekta",
|
||||||
"disconnect_lastfm": "Idiskonekta ang Last.fm",
|
"disconnect_lastfm": "Idiskonekta ang Last.fm",
|
||||||
"disconnect": "Idiskonekta",
|
"disconnect": "Idiskonekta",
|
||||||
"username": "Username",
|
"username": "Username",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
"login": "Mag-login",
|
"login": "Mag-login",
|
||||||
"login_with_your_lastfm": "Mag-login gamit ang iyong Last.fm account",
|
"login_with_your_lastfm": "Mag-login gamit ang iyong Last.fm account",
|
||||||
"scrobble_to_lastfm": "I-scrobble sa Last.fm",
|
"scrobble_to_lastfm": "I-scrobble sa Last.fm",
|
||||||
"go_to_album": "Pumunta sa Album",
|
"go_to_album": "Pumunta sa Album",
|
||||||
"discord_rich_presence": "Discord Rich Presence",
|
"discord_rich_presence": "Discord Rich Presence",
|
||||||
"browse_all": "I-browse Lahat",
|
"browse_all": "I-browse Lahat",
|
||||||
"genres": "Mga Genre",
|
"genres": "Mga Genre",
|
||||||
"explore_genres": "Tuklasin ang mga Genre",
|
"explore_genres": "Tuklasin ang mga Genre",
|
||||||
"friends": "Mga Kaibigan",
|
"friends": "Mga Kaibigan",
|
||||||
"no_lyrics_available": "Paumanhin, hindi mahanap ang lyrics para sa track na ito",
|
"no_lyrics_available": "Paumanhin, hindi mahanap ang lyrics para sa track na ito",
|
||||||
"start_a_radio": "Magsimula ng Radio",
|
"start_a_radio": "Magsimula ng Radio",
|
||||||
"how_to_start_radio": "Paano mo gustong simulan ang radio?",
|
"how_to_start_radio": "Paano mo gustong simulan ang radio?",
|
||||||
"replace_queue_question": "Gusto mo bang palitan ang kasalukuyang pila o idagdag dito?",
|
"replace_queue_question": "Gusto mo bang palitan ang kasalukuyang pila o idagdag dito?",
|
||||||
"endless_playback": "Walang Hanggang Playback",
|
"endless_playback": "Walang Hanggang Playback",
|
||||||
"delete_playlist": "Burahin ang Playlist",
|
"delete_playlist": "Burahin ang Playlist",
|
||||||
"delete_playlist_confirmation": "Sigurado ka bang gusto mong burahin ang playlist na ito?",
|
"delete_playlist_confirmation": "Sigurado ka bang gusto mong burahin ang playlist na ito?",
|
||||||
"local_tracks": "Mga Lokal na Track",
|
"local_tracks": "Mga Lokal na Track",
|
||||||
"local_tab": "Lokal",
|
"local_tab": "Lokal",
|
||||||
"song_link": "Link ng Kanta",
|
"song_link": "Link ng Kanta",
|
||||||
"skip_this_nonsense": "Laktawan ang kalokohan na ito",
|
"skip_this_nonsense": "Laktawan ang kalokohan na ito",
|
||||||
"freedom_of_music": "\"Kalayaan ng Musika\"",
|
"freedom_of_music": "\"Kalayaan ng Musika\"",
|
||||||
"freedom_of_music_palm": "\"Kalayaan ng Musika sa iyong palad\"",
|
"freedom_of_music_palm": "\"Kalayaan ng Musika sa iyong palad\"",
|
||||||
"get_started": "Magsimula na tayo",
|
"get_started": "Magsimula na tayo",
|
||||||
"youtube_source_description": "Inirerekomenda at pinakamahusay na gumagana.",
|
"youtube_source_description": "Inirerekomenda at pinakamahusay na gumagana.",
|
||||||
"piped_source_description": "Gusto ng kalayaan? Kapareho ng YouTube ngunit mas malaya.",
|
"piped_source_description": "Gusto ng kalayaan? Kapareho ng YouTube ngunit mas malaya.",
|
||||||
"jiosaavn_source_description": "Pinakamahusay para sa rehiyon ng South Asia.",
|
"jiosaavn_source_description": "Pinakamahusay para sa rehiyon ng South Asia.",
|
||||||
"invidious_source_description": "Katulad ng Piped ngunit may mas mataas na availability.",
|
"invidious_source_description": "Katulad ng Piped ngunit may mas mataas na availability.",
|
||||||
"highest_quality": "Pinakamataas na Kalidad: {quality}",
|
"highest_quality": "Pinakamataas na Kalidad: {quality}",
|
||||||
"select_audio_source": "Pumili ng Pinagmulan ng Audio",
|
"select_audio_source": "Pumili ng Pinagmulan ng Audio",
|
||||||
"endless_playback_description": "Awtomatikong magdagdag ng mga bagong kanta\nsa dulo ng pila",
|
"endless_playback_description": "Awtomatikong magdagdag ng mga bagong kanta\nsa dulo ng pila",
|
||||||
"choose_your_region": "Piliin ang iyong rehiyon",
|
"choose_your_region": "Piliin ang iyong rehiyon",
|
||||||
"choose_your_region_description": "Ito ay tutulong sa Spotube na ipakita sa iyo ang tamang content\npara sa iyong lokasyon.",
|
"choose_your_region_description": "Ito ay tutulong sa Spotube na ipakita sa iyo ang tamang content\npara sa iyong lokasyon.",
|
||||||
"choose_your_language": "Piliin ang iyong wika",
|
"choose_your_language": "Piliin ang iyong wika",
|
||||||
"help_project_grow": "Tulungan ang proyektong ito na lumago",
|
"help_project_grow": "Tulungan ang proyektong ito na lumago",
|
||||||
"help_project_grow_description": "Ang Spotube ay isang open-source na proyekto. Maaari mong tulungan ang proyektong ito na lumago sa pamamagitan ng pag-contribute sa proyekto, pag-ulat ng mga bug, o pagmungkahi ng mga bagong feature.",
|
"help_project_grow_description": "Ang Spotube ay isang open-source na proyekto. Maaari mong tulungan ang proyektong ito na lumago sa pamamagitan ng pag-contribute sa proyekto, pag-ulat ng mga bug, o pagmungkahi ng mga bagong feature.",
|
||||||
"contribute_on_github": "Mag-contribute sa GitHub",
|
"contribute_on_github": "Mag-contribute sa GitHub",
|
||||||
"donate_on_open_collective": "Mag-donate sa Open Collective",
|
"donate_on_open_collective": "Mag-donate sa Open Collective",
|
||||||
"browse_anonymously": "Mag-browse nang Anonymous",
|
"browse_anonymously": "Mag-browse nang Anonymous",
|
||||||
"enable_connect": "I-enable ang Connect",
|
"enable_connect": "I-enable ang Connect",
|
||||||
"enable_connect_description": "Kontrolin ang Spotube mula sa ibang mga device",
|
"enable_connect_description": "Kontrolin ang Spotube mula sa ibang mga device",
|
||||||
"devices": "Mga Device",
|
"devices": "Mga Device",
|
||||||
"select": "Pumili",
|
"select": "Pumili",
|
||||||
"connect_client_alert": "Ikaw ay kontrolado ng {client}",
|
"connect_client_alert": "Ikaw ay kontrolado ng {client}",
|
||||||
"this_device": "Ang Device na ito",
|
"this_device": "Ang Device na ito",
|
||||||
"remote": "Remote",
|
"remote": "Remote",
|
||||||
"stats": "Mga Stat",
|
"stats": "Mga Stat",
|
||||||
"and_n_more": "at {count} pa",
|
"and_n_more": "at {count} pa",
|
||||||
"recently_played": "Kamakailan Lang na Ni-play",
|
"recently_played": "Kamakailan Lang na Ni-play",
|
||||||
"browse_more": "Mag-browse pa",
|
"browse_more": "Mag-browse pa",
|
||||||
"no_title": "Walang Pamagat",
|
"no_title": "Walang Pamagat",
|
||||||
"not_playing": "Hindi tumutugtog",
|
"not_playing": "Hindi tumutugtog",
|
||||||
"epic_failure": "Epic na pagkabigo!",
|
"epic_failure": "Epic na pagkabigo!",
|
||||||
"added_num_tracks_to_queue": "Nagdagdag ng {tracks_length} na mga track sa pila",
|
"added_num_tracks_to_queue": "Nagdagdag ng {tracks_length} na mga track sa pila",
|
||||||
"spotube_has_an_update": "Ang Spotube ay may update",
|
"spotube_has_an_update": "Ang Spotube ay may update",
|
||||||
"download_now": "I-download Ngayon",
|
"download_now": "I-download Ngayon",
|
||||||
"nightly_version": "Ang Spotube Nightly {nightlyBuildNum} ay inilabas na",
|
"nightly_version": "Ang Spotube Nightly {nightlyBuildNum} ay inilabas na",
|
||||||
"release_version": "Ang Spotube v{version} ay inilabas na",
|
"release_version": "Ang Spotube v{version} ay inilabas na",
|
||||||
"read_the_latest": "Basahin ang pinakabagong ",
|
"read_the_latest": "Basahin ang pinakabagong ",
|
||||||
"release_notes": "release notes",
|
"release_notes": "release notes",
|
||||||
"pick_color_scheme": "Pumili ng color scheme",
|
"pick_color_scheme": "Pumili ng color scheme",
|
||||||
"save": "I-save",
|
"save": "I-save",
|
||||||
"choose_the_device": "Piliin ang device:",
|
"choose_the_device": "Piliin ang device:",
|
||||||
"multiple_device_connected": "Mayroong maraming device na nakakonekta.\nPiliin ang device kung saan mo gustong maganap ang aksyon na ito",
|
"multiple_device_connected": "Mayroong maraming device na nakakonekta.\nPiliin ang device kung saan mo gustong maganap ang aksyon na ito",
|
||||||
"nothing_found": "Walang nahanap",
|
"nothing_found": "Walang nahanap",
|
||||||
"the_box_is_empty": "Ang kahon ay walang laman",
|
"the_box_is_empty": "Ang kahon ay walang laman",
|
||||||
"top_artists": "Nangungunang mga Artista",
|
"top_artists": "Nangungunang mga Artista",
|
||||||
"top_albums": "Nangungunang mga Album",
|
"top_albums": "Nangungunang mga Album",
|
||||||
"this_week": "Ngayong linggo",
|
"this_week": "Ngayong linggo",
|
||||||
"this_month": "Ngayong buwan",
|
"this_month": "Ngayong buwan",
|
||||||
"last_6_months": "Nakaraang 6 na buwan",
|
"last_6_months": "Nakaraang 6 na buwan",
|
||||||
"this_year": "Ngayong taon",
|
"this_year": "Ngayong taon",
|
||||||
"last_2_years": "Nakaraang 2 taon",
|
"last_2_years": "Nakaraang 2 taon",
|
||||||
"all_time": "Lahat ng panahon",
|
"all_time": "Lahat ng panahon",
|
||||||
"powered_by_provider": "Pinapagana ng {providerName}",
|
"powered_by_provider": "Pinapagana ng {providerName}",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"profile_followers": "Mga Tagasunod",
|
"profile_followers": "Mga Tagasunod",
|
||||||
"birthday": "Kaarawan",
|
"birthday": "Kaarawan",
|
||||||
"subscription": "Subscription",
|
"subscription": "Subscription",
|
||||||
"not_born": "Hindi pa ipinanganak",
|
"not_born": "Hindi pa ipinanganak",
|
||||||
"hacker": "Hacker",
|
"hacker": "Hacker",
|
||||||
"profile": "Profile",
|
"profile": "Profile",
|
||||||
"no_name": "Walang Pangalan",
|
"no_name": "Walang Pangalan",
|
||||||
"edit": "I-edit",
|
"edit": "I-edit",
|
||||||
"user_profile": "Profile ng User",
|
"user_profile": "Profile ng User",
|
||||||
"count_plays": "{count} na mga play",
|
"count_plays": "{count} na mga play",
|
||||||
"streaming_fees_hypothetical": "Mga bayarin sa streaming (hypothetical)",
|
"streaming_fees_hypothetical": "Mga bayarin sa streaming (hypothetical)",
|
||||||
"minutes_listened": "Mga minutong pinapakinggan",
|
"minutes_listened": "Mga minutong pinapakinggan",
|
||||||
"streamed_songs": "Mga na-stream na kanta",
|
"streamed_songs": "Mga na-stream na kanta",
|
||||||
"count_streams": "{count} na mga stream",
|
"count_streams": "{count} na mga stream",
|
||||||
"owned_by_you": "Pag-aari mo",
|
"owned_by_you": "Pag-aari mo",
|
||||||
"copied_shareurl_to_clipboard": "Na-kopya ang {shareUrl} sa clipboard",
|
"copied_share_url_to_clipboard": "Na-kopya ang {shareUrl} sa clipboard",
|
||||||
"spotify_hipotetical_calculation": "*Ito ay kinalkula batay sa bawat stream\nna bayad ng Spotify na $0.003 hanggang $0.005. Ito ay isang hypothetical\nna pagkalkula para bigyan ang user ng ideya kung magkano\nang kanilang ibabayad sa mga artista kung sila ay nakikinig\nng kanilang kanta sa Spotify.",
|
"spotify_hypothetical_calculation": "*Ito ay kinalkula batay sa bawat stream\nna bayad ng Spotify na $0.003 hanggang $0.005. Ito ay isang hypothetical\nna pagkalkula para bigyan ang user ng ideya kung magkano\nang kanilang ibabayad sa mga artista kung sila ay nakikinig\nng kanilang kanta sa Spotify.",
|
||||||
"count_mins": "{minutes} minuto",
|
"count_minutes": "{minutes} minuto",
|
||||||
"summary_minutes": "minuto",
|
"summary_minutes": "minuto",
|
||||||
"summary_listened_to_music": "Nakinig sa musika",
|
"summary_listened_to_music": "Nakinig sa musika",
|
||||||
"summary_songs": "mga kanta",
|
"summary_songs": "mga kanta",
|
||||||
"summary_streamed_overall": "Na-stream sa kabuuan",
|
"summary_streamed_overall": "Na-stream sa kabuuan",
|
||||||
"summary_owed_to_artists": "Utang sa mga artista\nngayong buwan",
|
"summary_owed_to_artists": "Utang sa mga artista\nngayong buwan",
|
||||||
"summary_artists": "artista",
|
"summary_artists": "artista",
|
||||||
"summary_music_reached_you": "Umabot sa iyo ang musika",
|
"summary_music_reached_you": "Umabot sa iyo ang musika",
|
||||||
"summary_full_albums": "buong album",
|
"summary_full_albums": "buong album",
|
||||||
"summary_got_your_love": "Nakuha ang iyong pagmamahal",
|
"summary_got_your_love": "Nakuha ang iyong pagmamahal",
|
||||||
"summary_playlists": "mga playlist",
|
"summary_playlists": "mga playlist",
|
||||||
"summary_were_on_repeat": "Pinu-playlst muli",
|
"summary_were_on_repeat": "Pinu-playlst muli",
|
||||||
"total_money": "Kabuuang {money}",
|
"total_money": "Kabuuang {money}",
|
||||||
"webview_not_found": "Hindi nahanap ang Webview",
|
"webview_not_found": "Hindi nahanap ang Webview",
|
||||||
"webview_not_found_description": "Walang webview runtime na naka-install sa iyong device.\nKung naka-install ito, siguraduhing nasa Environment PATH\n\nPagkatapos mag-install, i-restart ang app",
|
"webview_not_found_description": "Walang webview runtime na naka-install sa iyong device.\nKung naka-install ito, siguraduhing nasa Environment PATH\n\nPagkatapos mag-install, i-restart ang app",
|
||||||
"unsupported_platform": "Hindi suportadong platform",
|
"unsupported_platform": "Hindi suportadong platform",
|
||||||
"cache_music": "I-cache ang musika",
|
"cache_music": "I-cache ang musika",
|
||||||
"open": "Buksan",
|
"open": "Buksan",
|
||||||
"cache_folder": "Folder ng cache",
|
"cache_folder": "Folder ng cache",
|
||||||
"export": "I-export",
|
"export": "I-export",
|
||||||
"clear_cache": "Burahin ang cache",
|
"clear_cache": "Burahin ang cache",
|
||||||
"clear_cache_confirmation": "Gusto mo bang burahin ang cache?",
|
"clear_cache_confirmation": "Gusto mo bang burahin ang cache?",
|
||||||
"export_cache_files": "I-export ang mga Naka-cache na File",
|
"export_cache_files": "I-export ang mga Naka-cache na File",
|
||||||
"found_n_files": "Nahanap ang {count} na mga file",
|
"found_n_files": "Nahanap ang {count} na mga file",
|
||||||
"export_cache_confirmation": "Gusto mo bang i-export ang mga file na ito sa",
|
"export_cache_confirmation": "Gusto mo bang i-export ang mga file na ito sa",
|
||||||
"exported_n_out_of_m_files": "Na-export ang {filesExported} mula sa {files} na mga file",
|
"exported_n_out_of_m_files": "Na-export ang {filesExported} mula sa {files} na mga file",
|
||||||
"undo": "I-undo",
|
"undo": "I-undo",
|
||||||
"download_all": "I-download lahat",
|
"download_all": "I-download lahat",
|
||||||
"add_all_to_playlist": "Idagdag lahat sa playlist",
|
"add_all_to_playlist": "Idagdag lahat sa playlist",
|
||||||
"add_all_to_queue": "Idagdag lahat sa pila",
|
"add_all_to_queue": "Idagdag lahat sa pila",
|
||||||
"play_all_next": "I-play lahat susunod",
|
"play_all_next": "I-play lahat susunod",
|
||||||
"pause": "Pause",
|
"pause": "Pause",
|
||||||
"view_all": "Tingnan lahat",
|
"view_all": "Tingnan lahat",
|
||||||
"no_tracks_added_yet": "Mukhang wala ka pang idinaragdag na mga track",
|
"no_tracks_added_yet": "Mukhang wala ka pang idinaragdag na mga track",
|
||||||
"no_tracks": "Mukhang walang mga track dito",
|
"no_tracks": "Mukhang walang mga track dito",
|
||||||
"no_tracks_listened_yet": "Mukhang wala ka pang pinakikinggan",
|
"no_tracks_listened_yet": "Mukhang wala ka pang pinakikinggan",
|
||||||
"not_following_artists": "Hindi ka sumusunod sa anumang mga artista",
|
"not_following_artists": "Hindi ka sumusunod sa anumang mga artista",
|
||||||
"no_favorite_albums_yet": "Mukhang wala ka pang idinagdag na anumang mga album sa iyong mga paborito",
|
"no_favorite_albums_yet": "Mukhang wala ka pang idinagdag na anumang mga album sa iyong mga paborito",
|
||||||
"no_logs_found": "Walang nahanap na mga log",
|
"no_logs_found": "Walang nahanap na mga log",
|
||||||
"youtube_engine": "YouTube Engine",
|
"youtube_engine": "YouTube Engine",
|
||||||
"youtube_engine_not_installed_title": "Hindi naka-install ang {engine}",
|
"youtube_engine_not_installed_title": "Hindi naka-install ang {engine}",
|
||||||
"youtube_engine_not_installed_message": "Hindi naka-install ang {engine} sa iyong sistema.",
|
"youtube_engine_not_installed_message": "Hindi naka-install ang {engine} sa iyong sistema.",
|
||||||
"youtube_engine_set_path": "Siguraduhing available ito sa PATH variable o\ni-set ang absolute path sa {engine} executable sa ibaba",
|
"youtube_engine_set_path": "Siguraduhing available ito sa PATH variable o\ni-set ang absolute path sa {engine} executable sa ibaba",
|
||||||
"youtube_engine_unix_issue_message": "Sa macOS/Linux/unix tulad ng OS, ang pag-set ng path sa .zshrc/.bashrc/.bash_profile atbp. ay hindi gagana.\nKailangan mong i-set ang path sa configuration file ng shell",
|
"youtube_engine_unix_issue_message": "Sa macOS/Linux/unix tulad ng OS, ang pag-set ng path sa .zshrc/.bashrc/.bash_profile atbp. ay hindi gagana.\nKailangan mong i-set ang path sa configuration file ng shell",
|
||||||
"download": "I-download",
|
"download": "I-download",
|
||||||
"file_not_found": "Hindi nahanap ang file",
|
"file_not_found": "Hindi nahanap ang file",
|
||||||
"custom": "Custom",
|
"custom": "Custom",
|
||||||
"add_custom_url": "Magdagdag ng custom URL"
|
"add_custom_url": "Magdagdag ng custom URL"
|
||||||
}
|
}
|
@ -91,7 +91,7 @@
|
|||||||
"mini_player": "Mini oynatıcı",
|
"mini_player": "Mini oynatıcı",
|
||||||
"slide_to_seek": "İleri veya geri arama yapmak için kaydırın",
|
"slide_to_seek": "İleri veya geri arama yapmak için kaydırın",
|
||||||
"shuffle_playlist": "Oynatma listesini karıştır",
|
"shuffle_playlist": "Oynatma listesini karıştır",
|
||||||
"unshuffle_playlist": "Oynatma listesinin karışıklığını kaldır",
|
"not_shuffle_playlist": "Oynatma listesinin karışıklığını kaldır",
|
||||||
"previous_track": "Önceki parça",
|
"previous_track": "Önceki parça",
|
||||||
"next_track": "Sonraki parça",
|
"next_track": "Sonraki parça",
|
||||||
"pause_playback": "Oynatmayı duraklat",
|
"pause_playback": "Oynatmayı duraklat",
|
||||||
@ -176,7 +176,7 @@
|
|||||||
"first_go_to": "İlk olarak şuraya gidin:",
|
"first_go_to": "İlk olarak şuraya gidin:",
|
||||||
"login_if_not_logged_in": "ve oturum açmadıysanız Oturum açın/Kaydolun",
|
"login_if_not_logged_in": "ve oturum açmadıysanız Oturum açın/Kaydolun",
|
||||||
"step_2": "2. Adım",
|
"step_2": "2. Adım",
|
||||||
"step_2_steps": "1. Oturum açtıktan sonra, tarayıcı geliştirme araçlarını açmak için F12'ye veya fareye sağ tıklayın > İncele'ye basın.\n2. Daha sonra \"Uygulama\" sekmesine (Chrome, Edge, Brave vb..) veya \"Depolama\" sekmesine (Firefox, Palemoon vb..) gidin\n3. \"Çerezler\" bölümüne, ardından \"https://accounts.spotify.com\" alt bölümüne gidin",
|
"step_2_steps": "1. Oturum açtıktan sonra, tarayıcı geliştirme araçlarını açmak için F12'ye veya fareye sağ tıklayın > İncele'ye basın.\n2. Daha sonra \"Uygulama\" sekmesine (Chrome, Edge, Brave vb..) veya \"Depolama\" sekmesine (Firefox, Pale Moon vb..) gidin\n3. \"Çerezler\" bölümüne, ardından \"https://accounts.spotify.com\" alt bölümüne gidin",
|
||||||
"step_3": "3. Adım",
|
"step_3": "3. Adım",
|
||||||
"step_3_steps": "\"sp_dc\" Çerezinin değerini kopyalayın",
|
"step_3_steps": "\"sp_dc\" Çerezinin değerini kopyalayın",
|
||||||
"success_emoji": "Başarılı🥳",
|
"success_emoji": "Başarılı🥳",
|
||||||
@ -199,13 +199,13 @@
|
|||||||
"add_genres": "Tür ekle",
|
"add_genres": "Tür ekle",
|
||||||
"country": "Ülke",
|
"country": "Ülke",
|
||||||
"number_of_tracks_generate": "Oluşturulacak parça sayısı",
|
"number_of_tracks_generate": "Oluşturulacak parça sayısı",
|
||||||
"acousticness": "Akustiklik",
|
"not_acoustic": "Akustiklik",
|
||||||
"danceability": "Dans Edilebilirlik",
|
"dance_ability": "Dans Edilebilirlik",
|
||||||
"energy": "Enerji",
|
"energy": "Enerji",
|
||||||
"instrumentalness": "Araçsallık",
|
"not_instrumental": "Araçsallık",
|
||||||
"liveness": "Canlılık",
|
"liveness": "Canlılık",
|
||||||
"loudness": "Ses yüksekliği",
|
"loudness": "Ses yüksekliği",
|
||||||
"speechiness": "Konuşkanlık",
|
"talkative": "Konuşkanlık",
|
||||||
"valence": "Değerlik",
|
"valence": "Değerlik",
|
||||||
"popularity": "Popülerlik",
|
"popularity": "Popülerlik",
|
||||||
"key": "Anahtar",
|
"key": "Anahtar",
|
||||||
@ -244,7 +244,7 @@
|
|||||||
"sort_newest": "En yeni eklenene göre sırala.",
|
"sort_newest": "En yeni eklenene göre sırala.",
|
||||||
"sort_oldest": "En eski eklenene göre sırala",
|
"sort_oldest": "En eski eklenene göre sırala",
|
||||||
"sleep_timer": "Uyku Zamanlayıcısı",
|
"sleep_timer": "Uyku Zamanlayıcısı",
|
||||||
"mins": "{minutes} Dakika",
|
"minutes": "{minutes} Dakika",
|
||||||
"hours": "{hours} Saatler",
|
"hours": "{hours} Saatler",
|
||||||
"hour": "{hours} Saat",
|
"hour": "{hours} Saat",
|
||||||
"custom_hours": "Özel Saatler",
|
"custom_hours": "Özel Saatler",
|
||||||
@ -255,7 +255,7 @@
|
|||||||
"audio_source": "Ses kaynağı",
|
"audio_source": "Ses kaynağı",
|
||||||
"ok": "Tamam",
|
"ok": "Tamam",
|
||||||
"failed_to_encrypt": "Şifreleme başarısız oldu",
|
"failed_to_encrypt": "Şifreleme başarısız oldu",
|
||||||
"encryption_failed_warning": "Spotube, verilerinizi güvenli bir şekilde depolamak için şifreleme kullanır. Ancak bunu başaramadı. Bu nedenle, güvensiz depolamaya geri dönecektir\nLinux kullanıyorsanız, lütfen gnome-keyring, kde-wallet, keepassxc vb. herhangi bir gizli servisin yüklü olduğundan emin olun.",
|
"encryption_failed_warning": "Spotube, verilerinizi güvenli bir şekilde depolamak için şifreleme kullanır. Ancak bunu başaramadı. Bu nedenle, güvensiz depolamaya geri dönecektir\nLinux kullanıyorsanız, lütfen gnome-keyring, kde-wallet, KeePassXC vb. herhangi bir gizli servisin yüklü olduğundan emin olun.",
|
||||||
"querying_info": "Bilgi sorgulanıyor...",
|
"querying_info": "Bilgi sorgulanıyor...",
|
||||||
"piped_api_down": "Piped API kapalı",
|
"piped_api_down": "Piped API kapalı",
|
||||||
"piped_down_error_instructions": "Piped örneği {pipedInstance} şu anda kapalı\n\nÖrneği değiştirin veya 'API türünü' resmi YouTube API'si olarak değiştirin\n\nDeğişiklikten sonra uygulamayı yeniden başlattığınızdan emin olun",
|
"piped_down_error_instructions": "Piped örneği {pipedInstance} şu anda kapalı\n\nÖrneği değiştirin veya 'API türünü' resmi YouTube API'si olarak değiştirin\n\nDeğişiklikten sonra uygulamayı yeniden başlattığınızdan emin olun",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "Kullanıcı Profili",
|
"user_profile": "Kullanıcı Profili",
|
||||||
"count_plays": "{count} çalma",
|
"count_plays": "{count} çalma",
|
||||||
"streaming_fees_hypothetical": "*Spotify'ın akış başına ödeme miktarına\n$0.003 ile $0.005 arasında hesaplanmıştır. Bu, kullanıcıya\nSpotify'da şarkılarını dinlerse sanatçılara ne kadar ödeme\nyapmış olabileceğini göstermek için hipotetik bir hesaplamadır.",
|
"streaming_fees_hypothetical": "*Spotify'ın akış başına ödeme miktarına\n$0.003 ile $0.005 arasında hesaplanmıştır. Bu, kullanıcıya\nSpotify'da şarkılarını dinlerse sanatçılara ne kadar ödeme\nyapmış olabileceğini göstermek için hipotetik bir hesaplamadır.",
|
||||||
"count_mins": "{minutes} dk",
|
"count_minutes": "{minutes} dk",
|
||||||
"summary_minutes": "dakika",
|
"summary_minutes": "dakika",
|
||||||
"summary_listened_to_music": "Dinlenen müzik",
|
"summary_listened_to_music": "Dinlenen müzik",
|
||||||
"summary_songs": "şarkılar",
|
"summary_songs": "şarkılar",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "Yayınlanan Şarkılar",
|
"streamed_songs": "Yayınlanan Şarkılar",
|
||||||
"count_streams": "{count} yayın",
|
"count_streams": "{count} yayın",
|
||||||
"owned_by_you": "Sahip olduğunuz",
|
"owned_by_you": "Sahip olduğunuz",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} panoya kopyalandı",
|
"copied_share_url_to_clipboard": "{shareUrl} panoya kopyalandı",
|
||||||
"spotify_hipotetical_calculation": "*Bu, Spotify'ın her yayın başına ödemenin\n$0.003 ile $0.005 arasında olduğu varsayımıyla hesaplanmıştır. Bu\nhipotetik bir hesaplamadır, kullanıcıya şarkılarını Spotify'da dinlediklerinde\nsanatçılara ne kadar ödeme yapacaklarını gösterir.",
|
"spotify_hypothetical_calculation": "*Bu, Spotify'ın her yayın başına ödemenin\n$0.003 ile $0.005 arasında olduğu varsayımıyla hesaplanmıştır. Bu\nhipotetik bir hesaplamadır, kullanıcıya şarkılarını Spotify'da dinlediklerinde\nsanatçılara ne kadar ödeme yapacaklarını gösterir.",
|
||||||
"webview_not_found": "Webview bulunamadı",
|
"webview_not_found": "Webview bulunamadı",
|
||||||
"webview_not_found_description": "Cihazınızda herhangi bir Webview çalışma zamanı yüklü değil.\nEğer kuruluysa, ortam YOLUNDA olduğundan emin olun\n\nKurulumdan sonra uygulamayı yeniden başlatın",
|
"webview_not_found_description": "Cihazınızda herhangi bir Webview çalışma zamanı yüklü değil.\nEğer kuruluysa, ortam YOLUNDA olduğundan emin olun\n\nKurulumdan sonra uygulamayı yeniden başlatın",
|
||||||
"unsupported_platform": "Desteklenmeyen platform",
|
"unsupported_platform": "Desteklenmeyen platform",
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
"mini_player": "Міні-плеєр",
|
"mini_player": "Міні-плеєр",
|
||||||
"slide_to_seek": "Проведіть пальцем, щоб перемотати вперед або назад",
|
"slide_to_seek": "Проведіть пальцем, щоб перемотати вперед або назад",
|
||||||
"shuffle_playlist": "Випадковий порядок відтворення плейлиста",
|
"shuffle_playlist": "Випадковий порядок відтворення плейлиста",
|
||||||
"unshuffle_playlist": "Відключити випадковий порядок відтворення плейлиста",
|
"not_shuffle_playlist": "Відключити випадковий порядок відтворення плейлиста",
|
||||||
"previous_track": "Попередній трек",
|
"previous_track": "Попередній трек",
|
||||||
"next_track": "Наступний трек",
|
"next_track": "Наступний трек",
|
||||||
"pause_playback": "Призупинити відтворення",
|
"pause_playback": "Призупинити відтворення",
|
||||||
@ -175,7 +175,7 @@
|
|||||||
"first_go_to": "Спочатку перейдіть на",
|
"first_go_to": "Спочатку перейдіть на",
|
||||||
"login_if_not_logged_in": "та Увійдіть/Зареєструйтесь, якщо ви не ввійшли",
|
"login_if_not_logged_in": "та Увійдіть/Зареєструйтесь, якщо ви не ввійшли",
|
||||||
"step_2": "Крок 2",
|
"step_2": "Крок 2",
|
||||||
"step_2_steps": "1. Після входу натисніть F12 або клацніть правою кнопкою миші > Інспектувати, щоб відкрити інструменти розробки браузера.\n2. Потім перейдіть на вкладку 'Програма' (Chrome, Edge, Brave тощо) або вкладку 'Сховище' (Firefox, Palemoon тощо).\n3. Перейдіть до розділу 'Кукі-файли', а потім до підрозділу 'https://accounts.spotify.com'",
|
"step_2_steps": "1. Після входу натисніть F12 або клацніть правою кнопкою миші > Інспектувати, щоб відкрити інструменти розробки браузера.\n2. Потім перейдіть на вкладку 'Програма' (Chrome, Edge, Brave тощо) або вкладку 'Сховище' (Firefox, Pale Moon тощо).\n3. Перейдіть до розділу 'Кукі-файли', а потім до підрозділу 'https://accounts.spotify.com'",
|
||||||
"step_3": "Крок 3",
|
"step_3": "Крок 3",
|
||||||
"success_emoji": "Успіх🥳",
|
"success_emoji": "Успіх🥳",
|
||||||
"success_message": "Тепер ви успішно ввійшли у свій обліковий запис Spotify. Гарна робота, друже!",
|
"success_message": "Тепер ви успішно ввійшли у свій обліковий запис Spotify. Гарна робота, друже!",
|
||||||
@ -196,13 +196,13 @@
|
|||||||
"add_genres": "Додати жанри",
|
"add_genres": "Додати жанри",
|
||||||
"country": "Країна",
|
"country": "Країна",
|
||||||
"number_of_tracks_generate": "Кількість треків для створення",
|
"number_of_tracks_generate": "Кількість треків для створення",
|
||||||
"acousticness": "Акустичність",
|
"not_acoustic": "Акустичність",
|
||||||
"danceability": "Танцювальність",
|
"dance_ability": "Танцювальність",
|
||||||
"energy": "Енергія",
|
"energy": "Енергія",
|
||||||
"instrumentalness": "Інструментальність",
|
"not_instrumental": "Інструментальність",
|
||||||
"liveness": "Живість",
|
"liveness": "Живість",
|
||||||
"loudness": "Гучність",
|
"loudness": "Гучність",
|
||||||
"speechiness": "Розмовність",
|
"talkative": "Розмовність",
|
||||||
"valence": "Валентність",
|
"valence": "Валентність",
|
||||||
"popularity": "Популярність",
|
"popularity": "Популярність",
|
||||||
"key": "Тональність",
|
"key": "Тональність",
|
||||||
@ -241,7 +241,7 @@
|
|||||||
"sort_newest": "Сортувати за датою додавання (новіші першими)",
|
"sort_newest": "Сортувати за датою додавання (новіші першими)",
|
||||||
"sort_oldest": "Сортувати за датою додавання (старіші першими)",
|
"sort_oldest": "Сортувати за датою додавання (старіші першими)",
|
||||||
"sleep_timer": "Таймер сну",
|
"sleep_timer": "Таймер сну",
|
||||||
"mins": "{minutes} хвилин",
|
"minutes": "{minutes} хвилин",
|
||||||
"hours": "{hours} годин",
|
"hours": "{hours} годин",
|
||||||
"hour": "{hours} година",
|
"hour": "{hours} година",
|
||||||
"custom_hours": "Кількість годин на замовлення",
|
"custom_hours": "Кількість годин на замовлення",
|
||||||
@ -252,7 +252,7 @@
|
|||||||
"audio_source": "Джерело аудіо",
|
"audio_source": "Джерело аудіо",
|
||||||
"ok": "Гаразд",
|
"ok": "Гаразд",
|
||||||
"failed_to_encrypt": "Не вдалося зашифрувати",
|
"failed_to_encrypt": "Не вдалося зашифрувати",
|
||||||
"encryption_failed_warning": "Spotube використовує шифрування для безпечного зберігання ваших даних. Але не вдалося цього зробити. Тому він перейде до небезпечного зберігання\nЯкщо ви використовуєте Linux, переконайтеся, що у вас встановлено будь-який секретний сервіс (gnome-keyring, kde-wallet, keepassxc тощо)",
|
"encryption_failed_warning": "Spotube використовує шифрування для безпечного зберігання ваших даних. Але не вдалося цього зробити. Тому він перейде до небезпечного зберігання\nЯкщо ви використовуєте Linux, переконайтеся, що у вас встановлено будь-який секретний сервіс (gnome-keyring, kde-wallet, KeePassXC тощо)",
|
||||||
"querying_info": "Запит інформації...",
|
"querying_info": "Запит інформації...",
|
||||||
"piped_api_down": "API Piped не працює",
|
"piped_api_down": "API Piped не працює",
|
||||||
"piped_down_error_instructions": "Поточний екземпляр Piped {pipedInstance} не працює\n\nЗмініть екземпляр або змініть 'Тип API' на офіційний YouTube API\n\nОбов'язково перезапустіть програму після зміни",
|
"piped_down_error_instructions": "Поточний екземпляр Piped {pipedInstance} не працює\n\nЗмініть екземпляр або змініть 'Тип API' на офіційний YouTube API\n\nОбов'язково перезапустіть програму після зміни",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "Профіль користувача",
|
"user_profile": "Профіль користувача",
|
||||||
"count_plays": "{count} відтворень",
|
"count_plays": "{count} відтворень",
|
||||||
"streaming_fees_hypothetical": "*Розраховано на основі виплат Spotify за стримінг\nвід $0.003 до $0.005. Це гіпотетичний\nрозрахунок, щоб дати уявлення користувачу про те, скільки б він\nзаплатив артистам, якби слухав їхні пісні на Spotify.",
|
"streaming_fees_hypothetical": "*Розраховано на основі виплат Spotify за стримінг\nвід $0.003 до $0.005. Це гіпотетичний\nрозрахунок, щоб дати уявлення користувачу про те, скільки б він\nзаплатив артистам, якби слухав їхні пісні на Spotify.",
|
||||||
"count_mins": "{minutes} хв",
|
"count_minutes": "{minutes} хв",
|
||||||
"summary_minutes": "хвилини",
|
"summary_minutes": "хвилини",
|
||||||
"summary_listened_to_music": "Прослухана музика",
|
"summary_listened_to_music": "Прослухана музика",
|
||||||
"summary_songs": "пісні",
|
"summary_songs": "пісні",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "Стримлені пісні",
|
"streamed_songs": "Стримлені пісні",
|
||||||
"count_streams": "{count} стримів",
|
"count_streams": "{count} стримів",
|
||||||
"owned_by_you": "Ваша власність",
|
"owned_by_you": "Ваша власність",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} скопійовано в буфер обміну",
|
"copied_share_url_to_clipboard": "{shareUrl} скопійовано в буфер обміну",
|
||||||
"spotify_hipotetical_calculation": "*Це розраховано на основі виплат Spotify за стрім\nвід $0.003 до $0.005. Це гіпотетичний розрахунок,\nщоб дати користувачеві уявлення про те, скільки б він заплатив\nартистам, якби слухав їхні пісні на Spotify.",
|
"spotify_hypothetical_calculation": "*Це розраховано на основі виплат Spotify за стрім\nвід $0.003 до $0.005. Це гіпотетичний розрахунок,\nщоб дати користувачеві уявлення про те, скільки б він заплатив\nартистам, якби слухав їхні пісні на Spotify.",
|
||||||
"webview_not_found": "Webview не знайдено",
|
"webview_not_found": "Webview не знайдено",
|
||||||
"webview_not_found_description": "На вашому пристрої не встановлено виконуване середовище Webview.\nЯкщо воно встановлено, переконайтеся, що воно знаходиться в environment PATH\n\nПісля встановлення перезапустіть програму",
|
"webview_not_found_description": "На вашому пристрої не встановлено виконуване середовище Webview.\nЯкщо воно встановлено, переконайтеся, що воно знаходиться в environment PATH\n\nПісля встановлення перезапустіть програму",
|
||||||
"unsupported_platform": "Непідтримувана платформа",
|
"unsupported_platform": "Непідтримувана платформа",
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
"mini_player": "Trình phát thu nhỏ",
|
"mini_player": "Trình phát thu nhỏ",
|
||||||
"slide_to_seek": "Trượt để tìm kiếm tiến hoặc lùi",
|
"slide_to_seek": "Trượt để tìm kiếm tiến hoặc lùi",
|
||||||
"shuffle_playlist": "Xáo trộn bài hát",
|
"shuffle_playlist": "Xáo trộn bài hát",
|
||||||
"unshuffle_playlist": "Hủy xáo trộn bài hát",
|
"not_shuffle_playlist": "Hủy xáo trộn bài hát",
|
||||||
"previous_track": "Bài hát trước",
|
"previous_track": "Bài hát trước",
|
||||||
"next_track": "Bài hát tiếp theo",
|
"next_track": "Bài hát tiếp theo",
|
||||||
"pause_playback": "Tạm dừng phát",
|
"pause_playback": "Tạm dừng phát",
|
||||||
@ -175,7 +175,7 @@
|
|||||||
"first_go_to": "Đầu tiên, truy cập",
|
"first_go_to": "Đầu tiên, truy cập",
|
||||||
"login_if_not_logged_in": "và Đăng nhập/Đăng ký nếu chưa có tài khoản",
|
"login_if_not_logged_in": "và Đăng nhập/Đăng ký nếu chưa có tài khoản",
|
||||||
"step_2": "Bước 2",
|
"step_2": "Bước 2",
|
||||||
"step_2_steps": "1. Sau khi đăng nhập, nhấn F12 hoặc Chuột phải > Mở devtools của trình duyệt.\n2. Sau đó, chuyển đến Tab \"Ứng dụng/Application\" (Chrome, Edge, Brave, v.v.) hoặc Tab \"Lưu trữ/Storage\" (Firefox, Palemoon, v.v.)\n3. Chuyển đến phần \"Cookie\" sau đó phần con \"https://accounts.spotify.com\"",
|
"step_2_steps": "1. Sau khi đăng nhập, nhấn F12 hoặc Chuột phải > Mở devtools của trình duyệt.\n2. Sau đó, chuyển đến Tab \"Ứng dụng/Application\" (Chrome, Edge, Brave, v.v.) hoặc Tab \"Lưu trữ/Storage\" (Firefox, Pale Moon, v.v.)\n3. Chuyển đến phần \"Cookie\" sau đó phần con \"https://accounts.spotify.com\"",
|
||||||
"step_3": "Bước 3",
|
"step_3": "Bước 3",
|
||||||
"step_3_steps": "Sao chép giá trị của Cookie \"sp_dc\" và \"sp_key\" (hoặc sp_gaid)",
|
"step_3_steps": "Sao chép giá trị của Cookie \"sp_dc\" và \"sp_key\" (hoặc sp_gaid)",
|
||||||
"success_emoji": "Thành công🥳",
|
"success_emoji": "Thành công🥳",
|
||||||
@ -198,13 +198,13 @@
|
|||||||
"add_genres": "Thêm Thể loại",
|
"add_genres": "Thêm Thể loại",
|
||||||
"country": "Quốc gia",
|
"country": "Quốc gia",
|
||||||
"number_of_tracks_generate": "Số lượng bài hát để tạo",
|
"number_of_tracks_generate": "Số lượng bài hát để tạo",
|
||||||
"acousticness": "Độ âm thanh",
|
"not_acoustic": "Độ âm thanh",
|
||||||
"danceability": "Khả năng nhảy",
|
"dance_ability": "Khả năng nhảy",
|
||||||
"energy": "Năng lượng",
|
"energy": "Năng lượng",
|
||||||
"instrumentalness": "Độ nhạc cụ",
|
"not_instrumental": "Độ nhạc cụ",
|
||||||
"liveness": "Sống động",
|
"liveness": "Sống động",
|
||||||
"loudness": "Độ ồn",
|
"loudness": "Độ ồn",
|
||||||
"speechiness": "Độ nói",
|
"talkative": "Độ nói",
|
||||||
"valence": "Tính tích cực",
|
"valence": "Tính tích cực",
|
||||||
"popularity": "Độ phổ biến",
|
"popularity": "Độ phổ biến",
|
||||||
"key": "Tông",
|
"key": "Tông",
|
||||||
@ -243,7 +243,7 @@
|
|||||||
"sort_newest": "Sắp xếp theo mới nhất",
|
"sort_newest": "Sắp xếp theo mới nhất",
|
||||||
"sort_oldest": "Sắp xếp theo cũ nhất",
|
"sort_oldest": "Sắp xếp theo cũ nhất",
|
||||||
"sleep_timer": "Hẹn giờ tắt",
|
"sleep_timer": "Hẹn giờ tắt",
|
||||||
"mins": "{minutes} Phút",
|
"minutes": "{minutes} Phút",
|
||||||
"hours": "{hours} Giờ",
|
"hours": "{hours} Giờ",
|
||||||
"hour": "{hours} Giờ",
|
"hour": "{hours} Giờ",
|
||||||
"custom_hours": "Giờ Tùy chỉnh",
|
"custom_hours": "Giờ Tùy chỉnh",
|
||||||
@ -254,7 +254,7 @@
|
|||||||
"audio_source": "Nguồn âm thanh",
|
"audio_source": "Nguồn âm thanh",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"failed_to_encrypt": "Mã hóa không thành công",
|
"failed_to_encrypt": "Mã hóa không thành công",
|
||||||
"encryption_failed_warning": "Spotube không thành công trong việc mã hóa nhằm lưu trữ dữ liêu an toàn. vậy nên sẽ chuyển về lưu trữ không an toàn\nNếu bạn đang sử dụng Linux, đảm bảo rằng bạn có sử dụng dịch vụ bảo mật (gnome-keyring, kde-wallet, keepassxc, v.v.)",
|
"encryption_failed_warning": "Spotube không thành công trong việc mã hóa nhằm lưu trữ dữ liêu an toàn. vậy nên sẽ chuyển về lưu trữ không an toàn\nNếu bạn đang sử dụng Linux, đảm bảo rằng bạn có sử dụng dịch vụ bảo mật (gnome-keyring, kde-wallet, KeePassXC, v.v.)",
|
||||||
"querying_info": "Đang truy vấn thông tin...",
|
"querying_info": "Đang truy vấn thông tin...",
|
||||||
"piped_api_down": "API Piped đang gặp sự cố",
|
"piped_api_down": "API Piped đang gặp sự cố",
|
||||||
"piped_down_error_instructions": "Phiên bản Piped {pipedInstance} hiện đang gặp sự cố\n\nThay đổi phiên bản hoặc thay đổi 'Loại API' thành API YouTube official\n\nKhởi động lai ứng dụng sau khi thay đổi.",
|
"piped_down_error_instructions": "Phiên bản Piped {pipedInstance} hiện đang gặp sự cố\n\nThay đổi phiên bản hoặc thay đổi 'Loại API' thành API YouTube official\n\nKhởi động lai ứng dụng sau khi thay đổi.",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "Hồ sơ người dùng",
|
"user_profile": "Hồ sơ người dùng",
|
||||||
"count_plays": "{count} lần phát",
|
"count_plays": "{count} lần phát",
|
||||||
"streaming_fees_hypothetical": "*Tính toán dựa trên thanh toán của Spotify cho mỗi lần phát\ntừ $0.003 đến $0.005. Đây là một tính toán giả định để\ngive người dùng cái nhìn về số tiền họ sẽ chi trả cho các nghệ sĩ nếu họ nghe\nbài hát của họ trên Spotify.",
|
"streaming_fees_hypothetical": "*Tính toán dựa trên thanh toán của Spotify cho mỗi lần phát\ntừ $0.003 đến $0.005. Đây là một tính toán giả định để\ngive người dùng cái nhìn về số tiền họ sẽ chi trả cho các nghệ sĩ nếu họ nghe\nbài hát của họ trên Spotify.",
|
||||||
"count_mins": "{minutes} phút",
|
"count_minutes": "{minutes} phút",
|
||||||
"summary_minutes": "phút",
|
"summary_minutes": "phút",
|
||||||
"summary_listened_to_music": "Đã nghe nhạc",
|
"summary_listened_to_music": "Đã nghe nhạc",
|
||||||
"summary_songs": "bài hát",
|
"summary_songs": "bài hát",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "Bài hát đã phát",
|
"streamed_songs": "Bài hát đã phát",
|
||||||
"count_streams": "{count} lượt phát",
|
"count_streams": "{count} lượt phát",
|
||||||
"owned_by_you": "Thuộc sở hữu của bạn",
|
"owned_by_you": "Thuộc sở hữu của bạn",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} đã sao chép vào bảng tạm",
|
"copied_share_url_to_clipboard": "{shareUrl} đã sao chép vào bảng tạm",
|
||||||
"spotify_hipotetical_calculation": "*Được tính toán dựa trên khoản thanh toán của Spotify cho mỗi lượt phát\ntừ $0.003 đến $0.005. Đây là một tính toán giả định để\ncung cấp cho người dùng cái nhìn về số tiền họ sẽ phải trả\ncho các nghệ sĩ nếu họ nghe bài hát của họ trên Spotify.",
|
"spotify_hypothetical_calculation": "*Được tính toán dựa trên khoản thanh toán của Spotify cho mỗi lượt phát\ntừ $0.003 đến $0.005. Đây là một tính toán giả định để\ncung cấp cho người dùng cái nhìn về số tiền họ sẽ phải trả\ncho các nghệ sĩ nếu họ nghe bài hát của họ trên Spotify.",
|
||||||
"webview_not_found": "Không tìm thấy Webview",
|
"webview_not_found": "Không tìm thấy Webview",
|
||||||
"webview_not_found_description": "Không có runtime Webview nào được cài đặt trên thiết bị của bạn.\nNếu đã cài đặt, hãy đảm bảo rằng nó nằm trong environment PATH\n\nSau khi cài đặt, hãy khởi động lại ứng dụng",
|
"webview_not_found_description": "Không có runtime Webview nào được cài đặt trên thiết bị của bạn.\nNếu đã cài đặt, hãy đảm bảo rằng nó nằm trong environment PATH\n\nSau khi cài đặt, hãy khởi động lại ứng dụng",
|
||||||
"unsupported_platform": "Nền tảng không được hỗ trợ",
|
"unsupported_platform": "Nền tảng không được hỗ trợ",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
"mini_player": "小窗模式",
|
"mini_player": "小窗模式",
|
||||||
"slide_to_seek": "滑动以前进或后退",
|
"slide_to_seek": "滑动以前进或后退",
|
||||||
"shuffle_playlist": "随机播放歌单",
|
"shuffle_playlist": "随机播放歌单",
|
||||||
"unshuffle_playlist": "取消随机播放歌单",
|
"not_shuffle_playlist": "取消随机播放歌单",
|
||||||
"previous_track": "上一首歌曲",
|
"previous_track": "上一首歌曲",
|
||||||
"next_track": "下一首歌曲",
|
"next_track": "下一首歌曲",
|
||||||
"pause_playback": "暂停播放",
|
"pause_playback": "暂停播放",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"first_go_to": "首先,前往",
|
"first_go_to": "首先,前往",
|
||||||
"login_if_not_logged_in": "如果尚未登录,请登录或者注册一个账户",
|
"login_if_not_logged_in": "如果尚未登录,请登录或者注册一个账户",
|
||||||
"step_2": "步骤 2",
|
"step_2": "步骤 2",
|
||||||
"step_2_steps": "1. 一旦你已经完成登录, 按 F12 键或者鼠标右击网页空白区域 > 选择“检查”以打开浏览器开发者工具(DevTools)\n2. 然后选择 \"应用(Application)\" 标签页(Chrome, Edge, Brave 等基于 Chromium 的浏览器) 或 \"存储(Storage)\" 标签页 (Firefox, Palemoon 等基于 Firefox 的浏览器))\n3. 选择 \"Cookies\" 栏目然后选择 \"https://accounts.spotify.com\" 子栏目",
|
"step_2_steps": "1. 一旦你已经完成登录, 按 F12 键或者鼠标右击网页空白区域 > 选择“检查”以打开浏览器开发者工具(DevTools)\n2. 然后选择 \"应用(Application)\" 标签页(Chrome, Edge, Brave 等基于 Chromium 的浏览器) 或 \"存储(Storage)\" 标签页 (Firefox, Pale Moon 等基于 Firefox 的浏览器))\n3. 选择 \"Cookies\" 栏目然后选择 \"https://accounts.spotify.com\" 子栏目",
|
||||||
"step_3": "步骤 3",
|
"step_3": "步骤 3",
|
||||||
"success_emoji": "成功🥳",
|
"success_emoji": "成功🥳",
|
||||||
"success_message": "你已经成功使用 Spotify 登录。干得漂亮!",
|
"success_message": "你已经成功使用 Spotify 登录。干得漂亮!",
|
||||||
@ -194,13 +194,13 @@
|
|||||||
"add_genres": "添加曲风",
|
"add_genres": "添加曲风",
|
||||||
"country": "国家和地区",
|
"country": "国家和地区",
|
||||||
"number_of_tracks_generate": "生成歌曲的数目",
|
"number_of_tracks_generate": "生成歌曲的数目",
|
||||||
"acousticness": "原声程度",
|
"not_acoustic": "原声程度",
|
||||||
"danceability": "律动感",
|
"dance_ability": "律动感",
|
||||||
"energy": "冲击感",
|
"energy": "冲击感",
|
||||||
"instrumentalness": "歌唱部分占比",
|
"not_instrumental": "歌唱部分占比",
|
||||||
"liveness": "现场感",
|
"liveness": "现场感",
|
||||||
"loudness": "响度",
|
"loudness": "响度",
|
||||||
"speechiness": "朗诵比例",
|
"talkative": "朗诵比例",
|
||||||
"valence": "心理感受",
|
"valence": "心理感受",
|
||||||
"popularity": "流行度",
|
"popularity": "流行度",
|
||||||
"key": "曲调",
|
"key": "曲调",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
"sort_newest": "按添加日期正序",
|
"sort_newest": "按添加日期正序",
|
||||||
"sort_oldest": "按添加日期倒序",
|
"sort_oldest": "按添加日期倒序",
|
||||||
"sleep_timer": "睡眠定时器",
|
"sleep_timer": "睡眠定时器",
|
||||||
"mins": "{minutes} 分",
|
"minutes": "{minutes} 分",
|
||||||
"hours": "{hours} 时",
|
"hours": "{hours} 时",
|
||||||
"hour": "{hours} 时",
|
"hour": "{hours} 时",
|
||||||
"custom_hours": "自定义时间",
|
"custom_hours": "自定义时间",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"audio_source": "音频源",
|
"audio_source": "音频源",
|
||||||
"ok": "确定",
|
"ok": "确定",
|
||||||
"failed_to_encrypt": "加密失败",
|
"failed_to_encrypt": "加密失败",
|
||||||
"encryption_failed_warning": "Spotube使用加密来安全地存储您的数据。但是失败了。因此,它将回退到不安全的存储\n如果您使用Linux,请确保已安装gnome-keyring、kde-wallet和keepassxc等秘密服务",
|
"encryption_failed_warning": "Spotube使用加密来安全地存储您的数据。但是失败了。因此,它将回退到不安全的存储\n如果您使用Linux,请确保已安装gnome-keyring、kde-wallet和KeePassXC等秘密服务",
|
||||||
"querying_info": "正在查询信息...",
|
"querying_info": "正在查询信息...",
|
||||||
"piped_api_down": "Piped API不可用",
|
"piped_api_down": "Piped API不可用",
|
||||||
"piped_down_error_instructions": "当前Piped实例{pipedInstance}不可用\n\n请更改实例或将'API类型'更改为官方YouTube API\n\n更改后请确保重新启动应用程序",
|
"piped_down_error_instructions": "当前Piped实例{pipedInstance}不可用\n\n请更改实例或将'API类型'更改为官方YouTube API\n\n更改后请确保重新启动应用程序",
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"user_profile": "用户资料",
|
"user_profile": "用户资料",
|
||||||
"count_plays": "{count} 次播放",
|
"count_plays": "{count} 次播放",
|
||||||
"streaming_fees_hypothetical": "*基于 Spotify 每次播放的支付金额\n从 $0.003 到 $0.005 计算。这是一个假设性的\n计算,旨在让用户了解如果他们在 Spotify 上收听\n这些歌曲,可能会付给艺术家的金额。",
|
"streaming_fees_hypothetical": "*基于 Spotify 每次播放的支付金额\n从 $0.003 到 $0.005 计算。这是一个假设性的\n计算,旨在让用户了解如果他们在 Spotify 上收听\n这些歌曲,可能会付给艺术家的金额。",
|
||||||
"count_mins": "{minutes} 分钟",
|
"count_minutes": "{minutes} 分钟",
|
||||||
"summary_minutes": "分钟",
|
"summary_minutes": "分钟",
|
||||||
"summary_listened_to_music": "听音乐",
|
"summary_listened_to_music": "听音乐",
|
||||||
"summary_songs": "歌曲",
|
"summary_songs": "歌曲",
|
||||||
@ -383,8 +383,8 @@
|
|||||||
"streamed_songs": "已流媒体歌曲",
|
"streamed_songs": "已流媒体歌曲",
|
||||||
"count_streams": "{count} 次流媒体",
|
"count_streams": "{count} 次流媒体",
|
||||||
"owned_by_you": "由您拥有",
|
"owned_by_you": "由您拥有",
|
||||||
"copied_shareurl_to_clipboard": "{shareUrl} 已复制到剪贴板",
|
"copied_share_url_to_clipboard": "{shareUrl} 已复制到剪贴板",
|
||||||
"spotify_hipotetical_calculation": "*根据 Spotify 每次流媒体的支付金额\n$0.003 到 $0.005 进行计算。这是一个假设性的\n计算,用于给用户了解他们如果在 Spotify 上\n收听歌曲会支付给艺术家的金额。",
|
"spotify_hypothetical_calculation": "*根据 Spotify 每次流媒体的支付金额\n$0.003 到 $0.005 进行计算。这是一个假设性的\n计算,用于给用户了解他们如果在 Spotify 上\n收听歌曲会支付给艺术家的金额。",
|
||||||
"webview_not_found": "未找到 Webview",
|
"webview_not_found": "未找到 Webview",
|
||||||
"webview_not_found_description": "您的设备中未安装 Webview 运行时。\n如果已安装,请确保它在 environment PATH 中\n\n安装后,重新启动应用程序",
|
"webview_not_found_description": "您的设备中未安装 Webview 运行时。\n如果已安装,请确保它在 environment PATH 中\n\n安装后,重新启动应用程序",
|
||||||
"unsupported_platform": "不支持的平台",
|
"unsupported_platform": "不支持的平台",
|
||||||
|
@ -701,11 +701,11 @@ abstract class AppLocalizations {
|
|||||||
/// **'Shuffle playlist'**
|
/// **'Shuffle playlist'**
|
||||||
String get shuffle_playlist;
|
String get shuffle_playlist;
|
||||||
|
|
||||||
/// No description provided for @unshuffle_playlist.
|
/// No description provided for @not_shuffle_playlist.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Unshuffle playlist'**
|
/// **'Unshuffle playlist'**
|
||||||
String get unshuffle_playlist;
|
String get not_shuffle_playlist;
|
||||||
|
|
||||||
/// No description provided for @previous_track.
|
/// No description provided for @previous_track.
|
||||||
///
|
///
|
||||||
@ -1238,7 +1238,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @step_2_steps.
|
/// No description provided for @step_2_steps.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'1. Once you\'re logged in, press F12 or Mouse Right Click > Inspect to Open the Browser devtools.\n2. Then go the \"Application\" Tab (Chrome, Edge, Brave etc..) or \"Storage\" Tab (Firefox, Palemoon etc..)\n3. Go to the \"Cookies\" section then the \"https://accounts.spotify.com\" subsection'**
|
/// **'1. Once you\'re logged in, press F12 or Mouse Right Click > Inspect to Open the Browser devtools.\n2. Then go the \"Application\" Tab (Chrome, Edge, Brave etc..) or \"Storage\" Tab (Firefox, Pale Moon etc..)\n3. Go to the \"Cookies\" section then the \"https://accounts.spotify.com\" subsection'**
|
||||||
String get step_2_steps;
|
String get step_2_steps;
|
||||||
|
|
||||||
/// No description provided for @step_3.
|
/// No description provided for @step_3.
|
||||||
@ -1391,17 +1391,17 @@ abstract class AppLocalizations {
|
|||||||
/// **'Number of tracks to generate'**
|
/// **'Number of tracks to generate'**
|
||||||
String get number_of_tracks_generate;
|
String get number_of_tracks_generate;
|
||||||
|
|
||||||
/// No description provided for @acousticness.
|
/// No description provided for @not_acoustic.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Acousticness'**
|
/// **'not_acoustic'**
|
||||||
String get acousticness;
|
String get not_acoustic;
|
||||||
|
|
||||||
/// No description provided for @danceability.
|
/// No description provided for @dance_ability.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Danceability'**
|
/// **'dance_ability'**
|
||||||
String get danceability;
|
String get dance_ability;
|
||||||
|
|
||||||
/// No description provided for @energy.
|
/// No description provided for @energy.
|
||||||
///
|
///
|
||||||
@ -1409,11 +1409,11 @@ abstract class AppLocalizations {
|
|||||||
/// **'Energy'**
|
/// **'Energy'**
|
||||||
String get energy;
|
String get energy;
|
||||||
|
|
||||||
/// No description provided for @instrumentalness.
|
/// No description provided for @not_instrumental.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Instrumentalness'**
|
/// **'not_instrumental'**
|
||||||
String get instrumentalness;
|
String get not_instrumental;
|
||||||
|
|
||||||
/// No description provided for @liveness.
|
/// No description provided for @liveness.
|
||||||
///
|
///
|
||||||
@ -1427,11 +1427,11 @@ abstract class AppLocalizations {
|
|||||||
/// **'Loudness'**
|
/// **'Loudness'**
|
||||||
String get loudness;
|
String get loudness;
|
||||||
|
|
||||||
/// No description provided for @speechiness.
|
/// No description provided for @talkative.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Speechiness'**
|
/// **'talkative'**
|
||||||
String get speechiness;
|
String get talkative;
|
||||||
|
|
||||||
/// No description provided for @valence.
|
/// No description provided for @valence.
|
||||||
///
|
///
|
||||||
@ -1661,11 +1661,11 @@ abstract class AppLocalizations {
|
|||||||
/// **'Sleep Timer'**
|
/// **'Sleep Timer'**
|
||||||
String get sleep_timer;
|
String get sleep_timer;
|
||||||
|
|
||||||
/// No description provided for @mins.
|
/// No description provided for @minutes.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'{minutes} Minutes'**
|
/// **'{minutes} Minutes'**
|
||||||
String mins(Object minutes);
|
String minutes(Object minutes);
|
||||||
|
|
||||||
/// No description provided for @hours.
|
/// No description provided for @hours.
|
||||||
///
|
///
|
||||||
@ -1730,7 +1730,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @encryption_failed_warning.
|
/// No description provided for @encryption_failed_warning.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Spotube uses encryption to securely store your data. But failed to do so. So it\'ll fallback to insecure storage\nIf you\'re using linux, please make sure you\'ve any secret-service (gnome-keyring, kde-wallet, keepassxc etc) installed'**
|
/// **'Spotube uses encryption to securely store your data. But failed to do so. So it\'ll fallback to insecure storage\nIf you\'re using linux, please make sure you\'ve any secret-service (gnome-keyring, kde-wallet, KeePassXC etc) installed'**
|
||||||
String get encryption_failed_warning;
|
String get encryption_failed_warning;
|
||||||
|
|
||||||
/// No description provided for @querying_info.
|
/// No description provided for @querying_info.
|
||||||
@ -2405,23 +2405,23 @@ abstract class AppLocalizations {
|
|||||||
/// **'Owned by you'**
|
/// **'Owned by you'**
|
||||||
String get owned_by_you;
|
String get owned_by_you;
|
||||||
|
|
||||||
/// No description provided for @copied_shareurl_to_clipboard.
|
/// No description provided for @copied_share_url_to_clipboard.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Copied {shareUrl} to clipboard'**
|
/// **'Copied {shareUrl} to clipboard'**
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl);
|
String copied_share_url_to_clipboard(Object shareUrl);
|
||||||
|
|
||||||
/// No description provided for @spotify_hipotetical_calculation.
|
/// No description provided for @spotify_hypothetical_calculation.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'*This is calculated based on Spotify\'s per stream\npayout of \$0.003 to \$0.005. This is a hypothetical\ncalculation to give user insight about how much they\nwould have paid to the artists if they were to listen\ntheir song in Spotify.'**
|
/// **'*This is calculated based on Spotify\'s per stream\npayout of \$0.003 to \$0.005. This is a hypothetical\ncalculation to give user insight about how much they\nwould have paid to the artists if they were to listen\ntheir song in Spotify.'**
|
||||||
String get spotify_hipotetical_calculation;
|
String get spotify_hypothetical_calculation;
|
||||||
|
|
||||||
/// No description provided for @count_mins.
|
/// No description provided for @count_minutes.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'{minutes} mins'**
|
/// **'{minutes} minutes'**
|
||||||
String count_mins(Object minutes);
|
String count_minutes(Object minutes);
|
||||||
|
|
||||||
/// No description provided for @summary_minutes.
|
/// No description provided for @summary_minutes.
|
||||||
///
|
///
|
||||||
|
@ -315,7 +315,7 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String get shuffle_playlist => 'قائمة تشغيل عشوائية';
|
String get shuffle_playlist => 'قائمة تشغيل عشوائية';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get unshuffle_playlist => 'إلغاء ترتيب قائمة التشغيل';
|
String get not_shuffle_playlist => 'إلغاء ترتيب قائمة التشغيل';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get previous_track => 'المقطوعة السابقة';
|
String get previous_track => 'المقطوعة السابقة';
|
||||||
@ -590,7 +590,7 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String get step_2 => 'الخطوة 2';
|
String get step_2 => 'الخطوة 2';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_2_steps => '1. بمجرد تسجيل الدخول، اضغط على F12 أو انقر بزر الماوس الأيمن > فحص لفتح أدوات تطوير المتصفح.\n2. ثم انتقل إلى علامة التبويب \"التطبيقات\" (Chrome وEdge وBrave وما إلى ذلك.) أو علامة التبويب \"التخزين\" (Firefox وPalemoon وما إلى ذلك..)\n3. انتقل إلى قسم \"ملفات تعريف الارتباط\" ثم القسم الفرعي \"https://accounts.spotify.com\"';
|
String get step_2_steps => '1. بمجرد تسجيل الدخول، اضغط على F12 أو انقر بزر الماوس الأيمن > فحص لفتح أدوات تطوير المتصفح.\n2. ثم انتقل إلى علامة التبويب \"التطبيقات\" (Chrome وEdge وBrave وما إلى ذلك.) أو علامة التبويب \"التخزين\" (Firefox وPale Moon وما إلى ذلك..)\n3. انتقل إلى قسم \"ملفات تعريف الارتباط\" ثم القسم الفرعي \"https://accounts.spotify.com\"';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_3 => 'الخطوة 3';
|
String get step_3 => 'الخطوة 3';
|
||||||
@ -672,16 +672,16 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String get number_of_tracks_generate => 'عدد المسارات المقطوعات المراد توليدها';
|
String get number_of_tracks_generate => 'عدد المسارات المقطوعات المراد توليدها';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get acousticness => 'صوتية';
|
String get not_acoustic => 'صوتية';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get danceability => 'قدرة على الرقص';
|
String get dance_ability => 'قدرة على الرقص';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get energy => 'طاقة';
|
String get energy => 'طاقة';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get instrumentalness => 'نفعية';
|
String get not_instrumental => 'نفعية';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get liveness => 'حيوية';
|
String get liveness => 'حيوية';
|
||||||
@ -690,7 +690,7 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String get loudness => 'بريق';
|
String get loudness => 'بريق';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get speechiness => 'كلام';
|
String get talkative => 'كلام';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get valence => 'تكافؤ';
|
String get valence => 'تكافؤ';
|
||||||
@ -809,7 +809,7 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String get sleep_timer => 'مؤقت النوم';
|
String get sleep_timer => 'مؤقت النوم';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String mins(Object minutes) {
|
String minutes(Object minutes) {
|
||||||
return '$minutes دقائق';
|
return '$minutes دقائق';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String get failed_to_encrypt => 'فشل في التشفير';
|
String get failed_to_encrypt => 'فشل في التشفير';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get encryption_failed_warning => 'يستخدم Spotube التشفير لتخزين بياناتك بشكل آمن. لكنها فشلت في القيام بذلك. لذلك سيعود الأمر إلى التخزين غير الآمن\nإذا كنت تستخدم Linux، فيرجى التأكد من تثبيت أي خدمة سرية (gnome-keyring، kde-wallet، keepassxc، إلخ)';
|
String get encryption_failed_warning => 'يستخدم Spotube التشفير لتخزين بياناتك بشكل آمن. لكنها فشلت في القيام بذلك. لذلك سيعود الأمر إلى التخزين غير الآمن\nإذا كنت تستخدم Linux، فيرجى التأكد من تثبيت أي خدمة سرية (gnome-keyring، kde-wallet، KeePassXC، إلخ)';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get querying_info => 'جارٍ الاستعلام عن معلومات...';
|
String get querying_info => 'جارٍ الاستعلام عن معلومات...';
|
||||||
@ -1207,15 +1207,15 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String get owned_by_you => 'مملوك لك';
|
String get owned_by_you => 'مملوك لك';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl) {
|
String copied_share_url_to_clipboard(Object shareUrl) {
|
||||||
return 'تم نسخ $shareUrl إلى الحافظة';
|
return 'تم نسخ $shareUrl إلى الحافظة';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get spotify_hipotetical_calculation => '*هذا محسوب بناءً على الدفع لكل بث من سبوتيفاي\nبقيمة 0.003 إلى 0.005 دولار. هذا حساب افتراضي\nلإعطاء المستخدم فكرة عن المبلغ الذي\nكان سيدفعه للفنانين إذا كانوا قد استمعوا\nإلى أغنيتهم على سبوتيفاي.';
|
String get spotify_hypothetical_calculation => '*هذا محسوب بناءً على الدفع لكل بث من سبوتيفاي\nبقيمة 0.003 إلى 0.005 دولار. هذا حساب افتراضي\nلإعطاء المستخدم فكرة عن المبلغ الذي\nكان سيدفعه للفنانين إذا كانوا قد استمعوا\nإلى أغنيتهم على سبوتيفاي.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String count_mins(Object minutes) {
|
String count_minutes(Object minutes) {
|
||||||
return '$minutes دقيقة';
|
return '$minutes دقيقة';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
String get shuffle_playlist => 'প্লেলিস্ট এলোমেলো করুন';
|
String get shuffle_playlist => 'প্লেলিস্ট এলোমেলো করুন';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get unshuffle_playlist => 'প্লেলিস্ট আগের মতো করুন';
|
String get not_shuffle_playlist => 'প্লেলিস্ট আগের মতো করুন';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get previous_track => 'আগের গানের ট্র্যাক';
|
String get previous_track => 'আগের গানের ট্র্যাক';
|
||||||
@ -590,7 +590,7 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
String get step_2 => 'ধাপ 2';
|
String get step_2 => 'ধাপ 2';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_2_steps => '১. একবার আপনি লগ ইন করলে, ব্রাউজার ডেভটুল খুলতে F12 বা মাউসের রাইট ক্লিক > \"Inspect to open Browser DevTools\" টিপুন।\n২. তারপর \"Application\" ট্যাবে যান (Chrome, Edge, Brave etc..) অথবা \"Storage\" Tab (Firefox, Palemoon etc..)\n৩. \"Cookies \" বিভাগে যান তারপর \"https://accounts.spotify.com\" উপবিভাগে যান';
|
String get step_2_steps => '১. একবার আপনি লগ ইন করলে, ব্রাউজার ডেভটুল খুলতে F12 বা মাউসের রাইট ক্লিক > \"Inspect to open Browser DevTools\" টিপুন।\n২. তারপর \"Application\" ট্যাবে যান (Chrome, Edge, Brave etc..) অথবা \"Storage\" Tab (Firefox, Pale Moon etc..)\n৩. \"Cookies \" বিভাগে যান তারপর \"https://accounts.spotify.com\" উপবিভাগে যান';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_3 => 'ধাপ 3';
|
String get step_3 => 'ধাপ 3';
|
||||||
@ -672,16 +672,16 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
String get number_of_tracks_generate => 'উত্পাদিত ট্র্যাকের সংখ্যা';
|
String get number_of_tracks_generate => 'উত্পাদিত ট্র্যাকের সংখ্যা';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get acousticness => 'অধ্যাত্মিকতা';
|
String get not_acoustic => 'অধ্যাত্মিকতা';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get danceability => 'নৃত্যমূলকতা';
|
String get dance_ability => 'নৃত্যমূলকতা';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get energy => 'শক্তি';
|
String get energy => 'শক্তি';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get instrumentalness => 'সাধারণতা';
|
String get not_instrumental => 'সাধারণতা';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get liveness => 'জীবনমুক্ততা';
|
String get liveness => 'জীবনমুক্ততা';
|
||||||
@ -690,7 +690,7 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
String get loudness => 'স্বরের উচ্চতা';
|
String get loudness => 'স্বরের উচ্চতা';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get speechiness => 'বক্তব্যমূলকতা';
|
String get talkative => 'বক্তব্যমূলকতা';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get valence => 'সন্তোষমূলকতা';
|
String get valence => 'সন্তোষমূলকতা';
|
||||||
@ -809,7 +809,7 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
String get sleep_timer => 'স্লীপ টাইমার';
|
String get sleep_timer => 'স্লীপ টাইমার';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String mins(Object minutes) {
|
String minutes(Object minutes) {
|
||||||
return '$minutes মিনিট';
|
return '$minutes মিনিট';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
String get failed_to_encrypt => 'এনক্রিপ্ট করা ব্যর্থ হয়েছে';
|
String get failed_to_encrypt => 'এনক্রিপ্ট করা ব্যর্থ হয়েছে';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get encryption_failed_warning => 'Spotube আপনার তথ্যগুলি নিরাপদভাবে স্টোর করতে এনক্রিপশন ব্যবহার করে। কিন্তু এটি ব্যর্থ হয়েছে। তাই এটি অনিরাপদ স্টোরে ফলফল হবে\nযদি আপনি Linux ব্যবহার করেন, তবে দয়া করে নিশ্চিত হউন যে আপনার কোনও সিক্রেট-সার্ভিস gnome-keyring, kde-wallet, keepassxc ইত্যাদি ইনস্টল করা আছে';
|
String get encryption_failed_warning => 'Spotube আপনার তথ্যগুলি নিরাপদভাবে স্টোর করতে এনক্রিপশন ব্যবহার করে। কিন্তু এটি ব্যর্থ হয়েছে। তাই এটি অনিরাপদ স্টোরে ফলফল হবে\nযদি আপনি Linux ব্যবহার করেন, তবে দয়া করে নিশ্চিত হউন যে আপনার কোনও সিক্রেট-সার্ভিস gnome-keyring, kde-wallet, KeePassXC ইত্যাদি ইনস্টল করা আছে';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get querying_info => 'তথ্য অনুসন্ধান করা হচ্ছে';
|
String get querying_info => 'তথ্য অনুসন্ধান করা হচ্ছে';
|
||||||
@ -1207,15 +1207,15 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
String get owned_by_you => 'আপনার মালিকানাধীন';
|
String get owned_by_you => 'আপনার মালিকানাধীন';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl) {
|
String copied_share_url_to_clipboard(Object shareUrl) {
|
||||||
return '$shareUrl ক্লিপবোর্ডে কপি করা হয়েছে';
|
return '$shareUrl ক্লিপবোর্ডে কপি করা হয়েছে';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get spotify_hipotetical_calculation => '*এটি স্পোটিফাইয়ের প্রতি স্ট্রিম\n\$0.003 থেকে \$0.005 পেআউটের ভিত্তিতে গণনা করা হয়েছে। এটি একটি ধারণাগত\nগণনা ব্যবহারকারীদেরকে জানাতে দেয় যে কত টাকা\nতারা শিল্পীদের দিতো যদি তারা স্পোটিফাইতে\nতাদের গান শুনতেন।';
|
String get spotify_hypothetical_calculation => '*এটি স্পোটিফাইয়ের প্রতি স্ট্রিম\n\$0.003 থেকে \$0.005 পেআউটের ভিত্তিতে গণনা করা হয়েছে। এটি একটি ধারণাগত\nগণনা ব্যবহারকারীদেরকে জানাতে দেয় যে কত টাকা\nতারা শিল্পীদের দিতো যদি তারা স্পোটিফাইতে\nতাদের গান শুনতেন।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String count_mins(Object minutes) {
|
String count_minutes(Object minutes) {
|
||||||
return '$minutes মিনিট';
|
return '$minutes মিনিট';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String get shuffle_playlist => 'Mesclar la llista de reproducció';
|
String get shuffle_playlist => 'Mesclar la llista de reproducció';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get unshuffle_playlist => 'No mesclar la llista de reproducció';
|
String get not_shuffle_playlist => 'No mesclar la llista de reproducció';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get previous_track => 'Cançó anterior';
|
String get previous_track => 'Cançó anterior';
|
||||||
@ -590,7 +590,7 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String get step_2 => 'Pas 2';
|
String get step_2 => 'Pas 2';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_2_steps => '1. Una vegada que hagi iniciat sessió, premi F12 o faci clic dret amb el ratolí > Inspeccionar per obrir les eines de desenvolulpador del navegador.\n2. Després vagi a la pestanya \"Application\" (Chrome, Edge, Brave, etc.) o \"Storage\" (Firefox, Palemoon, etc.)\n3. Vagi a la secció \"Cookies\" i després a la subsecció \"https://accounts.spotify.com\"';
|
String get step_2_steps => '1. Una vegada que hagi iniciat sessió, premi F12 o faci clic dret amb el ratolí > Inspeccionar per obrir les eines de desenvolulpador del navegador.\n2. Després vagi a la pestanya \"Application\" (Chrome, Edge, Brave, etc.) o \"Storage\" (Firefox, Pale Moon, etc.)\n3. Vagi a la secció \"Cookies\" i després a la subsecció \"https://accounts.spotify.com\"';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_3 => 'Pas 3';
|
String get step_3 => 'Pas 3';
|
||||||
@ -672,16 +672,16 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String get number_of_tracks_generate => 'Número de cançons a generar';
|
String get number_of_tracks_generate => 'Número de cançons a generar';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get acousticness => 'Acústica';
|
String get not_acoustic => 'Acústica';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get danceability => 'Ballabilitat';
|
String get dance_ability => 'Ballabilitat';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get energy => 'Energia';
|
String get energy => 'Energia';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get instrumentalness => 'Instrumental';
|
String get not_instrumental => 'Instrumental';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get liveness => 'En viu';
|
String get liveness => 'En viu';
|
||||||
@ -690,7 +690,7 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String get loudness => 'Sonoritat';
|
String get loudness => 'Sonoritat';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get speechiness => 'Parla';
|
String get talkative => 'Parla';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get valence => 'Valencia';
|
String get valence => 'Valencia';
|
||||||
@ -809,7 +809,7 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String get sleep_timer => 'Temporitzador d\'apagat';
|
String get sleep_timer => 'Temporitzador d\'apagat';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String mins(Object minutes) {
|
String minutes(Object minutes) {
|
||||||
return '$minutes minuts';
|
return '$minutes minuts';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String get failed_to_encrypt => 'Error al xifrar';
|
String get failed_to_encrypt => 'Error al xifrar';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get encryption_failed_warning => 'Spotube utilitza el xifrado per emmagatzemar les seves dades de forma segura. Però ha fallat. Per tant, tornarà a un emmagatzament no segur\nSi estè utilizant Linux, asseguri\'s de tenir instal·lats els serveis secrets com gnome-keyring, kde-wallet i keepassxc';
|
String get encryption_failed_warning => 'Spotube utilitza el xifrado per emmagatzemar les seves dades de forma segura. Però ha fallat. Per tant, tornarà a un emmagatzament no segur\nSi estè utilizant Linux, asseguri\'s de tenir instal·lats els serveis secrets com gnome-keyring, kde-wallet i KeePassXC';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get querying_info => 'Consultant informació...';
|
String get querying_info => 'Consultant informació...';
|
||||||
@ -1207,15 +1207,15 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String get owned_by_you => 'De la teva propietat';
|
String get owned_by_you => 'De la teva propietat';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl) {
|
String copied_share_url_to_clipboard(Object shareUrl) {
|
||||||
return 'S\'ha copiat $shareUrl al porta-retalls';
|
return 'S\'ha copiat $shareUrl al porta-retalls';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get spotify_hipotetical_calculation => '*Això es calcula basant-se en els\npagaments per reproducció de Spotify de \$0.003 a \$0.005.\nAquest és un càlcul hipotètic per\ndonar als usuaris una idea de quant\nhaurien pagat als artistes si haguessin escoltat\nla seva cançó a Spotify.';
|
String get spotify_hypothetical_calculation => '*Això es calcula basant-se en els\npagaments per reproducció de Spotify de \$0.003 a \$0.005.\nAquest és un càlcul hipotètic per\ndonar als usuaris una idea de quant\nhaurien pagat als artistes si haguessin escoltat\nla seva cançó a Spotify.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String count_mins(Object minutes) {
|
String count_minutes(Object minutes) {
|
||||||
return '$minutes minuts';
|
return '$minutes minuts';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
String get shuffle_playlist => 'Zamíchat playlist';
|
String get shuffle_playlist => 'Zamíchat playlist';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get unshuffle_playlist => 'Zrušit zamíchání playlistu';
|
String get not_shuffle_playlist => 'Zrušit zamíchání playlistu';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get previous_track => 'Předchozí skladba';
|
String get previous_track => 'Předchozí skladba';
|
||||||
@ -590,7 +590,7 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
String get step_2 => 'Krok 2';
|
String get step_2 => 'Krok 2';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_2_steps => '1. Jakmile jste přihlášeni, stiskněte F12 nebo pravé tlačítko myši > Prozkoumat, abyste otevřeli nástroje pro vývojáře prohlížeče.\n2. Poté přejděte na kartu \"Aplikace\" (Chrome, Edge, Brave atd.) nebo kartu \"Úložiště\" (Firefox, Palemoon atd.)\n3. Přejděte do sekce \"Cookies\" a pak do podsekce \"https://accounts.spotify.com\"';
|
String get step_2_steps => '1. Jakmile jste přihlášeni, stiskněte F12 nebo pravé tlačítko myši > Prozkoumat, abyste otevřeli nástroje pro vývojáře prohlížeče.\n2. Poté přejděte na kartu \"Aplikace\" (Chrome, Edge, Brave atd.) nebo kartu \"Úložiště\" (Firefox, Pale Moon atd.)\n3. Přejděte do sekce \"Cookies\" a pak do podsekce \"https://accounts.spotify.com\"';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_3 => 'Krok 3';
|
String get step_3 => 'Krok 3';
|
||||||
@ -672,16 +672,16 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
String get number_of_tracks_generate => 'Počet skladeb k vygenerování';
|
String get number_of_tracks_generate => 'Počet skladeb k vygenerování';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get acousticness => 'Akustičnost';
|
String get not_acoustic => 'Akustičnost';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get danceability => 'Tanečnost';
|
String get dance_ability => 'Tanečnost';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get energy => 'Energie';
|
String get energy => 'Energie';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get instrumentalness => 'Instrumentálnost';
|
String get not_instrumental => 'Instrumentálnost';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get liveness => 'Živost';
|
String get liveness => 'Živost';
|
||||||
@ -690,7 +690,7 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
String get loudness => 'Hlasitost';
|
String get loudness => 'Hlasitost';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get speechiness => 'Mluvnost';
|
String get talkative => 'Mluvnost';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get valence => 'Valence';
|
String get valence => 'Valence';
|
||||||
@ -809,7 +809,7 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
String get sleep_timer => 'Časovač spánku';
|
String get sleep_timer => 'Časovač spánku';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String mins(Object minutes) {
|
String minutes(Object minutes) {
|
||||||
return '$minutes Minut';
|
return '$minutes Minut';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
String get failed_to_encrypt => 'Šifrování selhalo';
|
String get failed_to_encrypt => 'Šifrování selhalo';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get encryption_failed_warning => 'Spotube používá šifrování k bezpečnému ukládání vašich dat. Ale selhalo. Takže se vrátí k nezabezpečenému úložišti\nPokud používáte linux, ujistěte se, že máte nainstalovanou jakoukoli službu k ukládání bezpečnostních pověření (gnome-keyring, kde-wallet, keepassxc atd.)';
|
String get encryption_failed_warning => 'Spotube používá šifrování k bezpečnému ukládání vašich dat. Ale selhalo. Takže se vrátí k nezabezpečenému úložišti\nPokud používáte linux, ujistěte se, že máte nainstalovanou jakoukoli službu k ukládání bezpečnostních pověření (gnome-keyring, kde-wallet, KeePassXC atd.)';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get querying_info => 'Získávání informací...';
|
String get querying_info => 'Získávání informací...';
|
||||||
@ -1207,15 +1207,15 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
String get owned_by_you => 'Vlastněno vámi';
|
String get owned_by_you => 'Vlastněno vámi';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl) {
|
String copied_share_url_to_clipboard(Object shareUrl) {
|
||||||
return 'Zkopírováno $shareUrl do schránky';
|
return 'Zkopírováno $shareUrl do schránky';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get spotify_hipotetical_calculation => '*Toto je vypočítáno na základě výplaty\nza stream Spotify od \$0.003 do \$0.005.\nToto je hypotetický výpočet,\nabyste měli představu o tom, kolik\nbyste zaplatili umělcům,\npokud byste poslouchali jejich píseň na Spotify.';
|
String get spotify_hypothetical_calculation => '*Toto je vypočítáno na základě výplaty\nza stream Spotify od \$0.003 do \$0.005.\nToto je hypotetický výpočet,\nabyste měli představu o tom, kolik\nbyste zaplatili umělcům,\npokud byste poslouchali jejich píseň na Spotify.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String count_mins(Object minutes) {
|
String count_minutes(Object minutes) {
|
||||||
return '$minutes minut';
|
return '$minutes minut';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
String get shuffle_playlist => 'Playlist mischen';
|
String get shuffle_playlist => 'Playlist mischen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get unshuffle_playlist => 'Playlist nicht mehr mischen';
|
String get not_shuffle_playlist => 'Playlist nicht mehr mischen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get previous_track => 'Vorheriger Track';
|
String get previous_track => 'Vorheriger Track';
|
||||||
@ -590,7 +590,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
String get step_2 => 'Schritt 2';
|
String get step_2 => 'Schritt 2';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_2_steps => '1. Wenn du angemeldet bist, drücke F12 oder klicke mit der rechten Maustaste > Inspektion, um die Browser-Entwicklertools zu öffnen.\n2. Gehe dann zum \"Anwendungs\"-Tab (Chrome, Edge, Brave usw.) oder zum \"Storage\"-Tab (Firefox, Palemoon usw.)\n3. Gehe zum Abschnitt \"Cookies\" und dann zum Unterabschnitt \"https://accounts.spotify.com\"';
|
String get step_2_steps => '1. Wenn du angemeldet bist, drücke F12 oder klicke mit der rechten Maustaste > Inspektion, um die Browser-Entwicklertools zu öffnen.\n2. Gehe dann zum \"Anwendungs\"-Tab (Chrome, Edge, Brave usw.) oder zum \"Storage\"-Tab (Firefox, Pale Moon usw.)\n3. Gehe zum Abschnitt \"Cookies\" und dann zum Unterabschnitt \"https://accounts.spotify.com\"';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_3 => 'Schritt 3';
|
String get step_3 => 'Schritt 3';
|
||||||
@ -672,16 +672,16 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
String get number_of_tracks_generate => 'Anzahl der zu generierenden Titel';
|
String get number_of_tracks_generate => 'Anzahl der zu generierenden Titel';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get acousticness => 'Akustik';
|
String get not_acoustic => 'Akustik';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get danceability => 'Tanzbarkeit';
|
String get dance_ability => 'Tanzbarkeit';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get energy => 'Energie';
|
String get energy => 'Energie';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get instrumentalness => 'Instrumentalität';
|
String get not_instrumental => 'Instrumentalität';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get liveness => 'Lebendigkeit';
|
String get liveness => 'Lebendigkeit';
|
||||||
@ -690,7 +690,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
String get loudness => 'Lautstärke';
|
String get loudness => 'Lautstärke';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get speechiness => 'Sprechanteil';
|
String get talkative => 'Sprechanteil';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get valence => 'Stimmung';
|
String get valence => 'Stimmung';
|
||||||
@ -809,7 +809,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
String get sleep_timer => 'Schlaftimer';
|
String get sleep_timer => 'Schlaftimer';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String mins(Object minutes) {
|
String minutes(Object minutes) {
|
||||||
return '$minutes Minuten';
|
return '$minutes Minuten';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
String get failed_to_encrypt => 'Verschlüsselung fehlgeschlagen';
|
String get failed_to_encrypt => 'Verschlüsselung fehlgeschlagen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get encryption_failed_warning => 'Spotube verwendet Verschlüsselung, um Ihre Daten sicher zu speichern. Dies ist jedoch fehlgeschlagen. Daher wird es auf unsichere Speicherung zurückgreifen\nWenn Sie Linux verwenden, stellen Sie bitte sicher, dass Sie Secret-Services wie gnome-keyring, kde-wallet und keepassxc installiert haben';
|
String get encryption_failed_warning => 'Spotube verwendet Verschlüsselung, um Ihre Daten sicher zu speichern. Dies ist jedoch fehlgeschlagen. Daher wird es auf unsichere Speicherung zurückgreifen\nWenn Sie Linux verwenden, stellen Sie bitte sicher, dass Sie Secret-Services wie gnome-keyring, kde-wallet und KeePassXC installiert haben';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get querying_info => 'Abfrageinformationen...';
|
String get querying_info => 'Abfrageinformationen...';
|
||||||
@ -1207,15 +1207,15 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
String get owned_by_you => 'In Ihrem Besitz';
|
String get owned_by_you => 'In Ihrem Besitz';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl) {
|
String copied_share_url_to_clipboard(Object shareUrl) {
|
||||||
return '$shareUrl in die Zwischenablage kopiert';
|
return '$shareUrl in die Zwischenablage kopiert';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get spotify_hipotetical_calculation => '*Dies ist basierend auf Spotifys\npro Stream Auszahlung von \$0,003 bis \$0,005\nberechnet. Dies ist eine hypothetische Berechnung,\num dem Benutzer Einblick zu geben,\nwieviel sie den Künstlern gezahlt hätten,\nwenn sie ihren Song auf Spotify gehört hätten.';
|
String get spotify_hypothetical_calculation => '*Dies ist basierend auf Spotifys\npro Stream Auszahlung von \$0,003 bis \$0,005\nberechnet. Dies ist eine hypothetische Berechnung,\num dem Benutzer Einblick zu geben,\nwieviel sie den Künstlern gezahlt hätten,\nwenn sie ihren Song auf Spotify gehört hätten.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String count_mins(Object minutes) {
|
String count_minutes(Object minutes) {
|
||||||
return '$minutes Minuten';
|
return '$minutes Minuten';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get shuffle_playlist => 'Shuffle playlist';
|
String get shuffle_playlist => 'Shuffle playlist';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get unshuffle_playlist => 'Unshuffle playlist';
|
String get not_shuffle_playlist => 'Unshuffle playlist';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get previous_track => 'Previous track';
|
String get previous_track => 'Previous track';
|
||||||
@ -590,7 +590,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get step_2 => 'Step 2';
|
String get step_2 => 'Step 2';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_2_steps => '1. Once you\'re logged in, press F12 or Mouse Right Click > Inspect to Open the Browser devtools.\n2. Then go the \"Application\" Tab (Chrome, Edge, Brave etc..) or \"Storage\" Tab (Firefox, Palemoon etc..)\n3. Go to the \"Cookies\" section then the \"https://accounts.spotify.com\" subsection';
|
String get step_2_steps => '1. Once you\'re logged in, press F12 or Mouse Right Click > Inspect to Open the Browser devtools.\n2. Then go the \"Application\" Tab (Chrome, Edge, Brave etc..) or \"Storage\" Tab (Firefox, Pale Moon etc..)\n3. Go to the \"Cookies\" section then the \"https://accounts.spotify.com\" subsection';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_3 => 'Step 3';
|
String get step_3 => 'Step 3';
|
||||||
@ -672,16 +672,16 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get number_of_tracks_generate => 'Number of tracks to generate';
|
String get number_of_tracks_generate => 'Number of tracks to generate';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get acousticness => 'Acousticness';
|
String get not_acoustic => 'not_acoustic';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get danceability => 'Danceability';
|
String get dance_ability => 'dance_ability';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get energy => 'Energy';
|
String get energy => 'Energy';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get instrumentalness => 'Instrumentalness';
|
String get not_instrumental => 'not_instrumental';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get liveness => 'Liveness';
|
String get liveness => 'Liveness';
|
||||||
@ -690,7 +690,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get loudness => 'Loudness';
|
String get loudness => 'Loudness';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get speechiness => 'Speechiness';
|
String get talkative => 'talkative';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get valence => 'Valence';
|
String get valence => 'Valence';
|
||||||
@ -809,7 +809,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get sleep_timer => 'Sleep Timer';
|
String get sleep_timer => 'Sleep Timer';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String mins(Object minutes) {
|
String minutes(Object minutes) {
|
||||||
return '$minutes Minutes';
|
return '$minutes Minutes';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get failed_to_encrypt => 'Failed to encrypt';
|
String get failed_to_encrypt => 'Failed to encrypt';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get encryption_failed_warning => 'Spotube uses encryption to securely store your data. But failed to do so. So it\'ll fallback to insecure storage\nIf you\'re using linux, please make sure you\'ve any secret-service (gnome-keyring, kde-wallet, keepassxc etc) installed';
|
String get encryption_failed_warning => 'Spotube uses encryption to securely store your data. But failed to do so. So it\'ll fallback to insecure storage\nIf you\'re using linux, please make sure you\'ve any secret-service (gnome-keyring, kde-wallet, KeePassXC etc) installed';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get querying_info => 'Querying info...';
|
String get querying_info => 'Querying info...';
|
||||||
@ -1207,16 +1207,16 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get owned_by_you => 'Owned by you';
|
String get owned_by_you => 'Owned by you';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl) {
|
String copied_share_url_to_clipboard(Object shareUrl) {
|
||||||
return 'Copied $shareUrl to clipboard';
|
return 'Copied $shareUrl to clipboard';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get spotify_hipotetical_calculation => '*This is calculated based on Spotify\'s per stream\npayout of \$0.003 to \$0.005. This is a hypothetical\ncalculation to give user insight about how much they\nwould have paid to the artists if they were to listen\ntheir song in Spotify.';
|
String get spotify_hypothetical_calculation => '*This is calculated based on Spotify\'s per stream\npayout of \$0.003 to \$0.005. This is a hypothetical\ncalculation to give user insight about how much they\nwould have paid to the artists if they were to listen\ntheir song in Spotify.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String count_mins(Object minutes) {
|
String count_minutes(Object minutes) {
|
||||||
return '$minutes mins';
|
return '$minutes minutes';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -315,7 +315,7 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String get shuffle_playlist => 'Reproducir lista en orden aleatorio';
|
String get shuffle_playlist => 'Reproducir lista en orden aleatorio';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get unshuffle_playlist => 'Desactivar reproducción aleatoria';
|
String get not_shuffle_playlist => 'Desactivar reproducción aleatoria';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get previous_track => 'Pista anterior';
|
String get previous_track => 'Pista anterior';
|
||||||
@ -590,7 +590,7 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String get step_2 => 'Paso 2';
|
String get step_2 => 'Paso 2';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_2_steps => '1. Una vez que hayas iniciado sesión, presiona F12 o haz clic derecho con el ratón > Inspeccionar para abrir las herramientas de desarrollo del navegador.\n2. Luego ve a la pestaña \"Application\" (Chrome, Edge, Brave, etc.) o \"Storage\" (Firefox, Palemoon, etc.)\n3. Ve a la sección \"Cookies\" y luego la subsección \"https://accounts.spotify.com\"';
|
String get step_2_steps => '1. Una vez que hayas iniciado sesión, presiona F12 o haz clic derecho con el ratón > Inspeccionar para abrir las herramientas de desarrollo del navegador.\n2. Luego ve a la pestaña \"Application\" (Chrome, Edge, Brave, etc.) o \"Storage\" (Firefox, Pale Moon, etc.)\n3. Ve a la sección \"Cookies\" y luego la subsección \"https://accounts.spotify.com\"';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_3 => 'Paso 3';
|
String get step_3 => 'Paso 3';
|
||||||
@ -672,16 +672,16 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String get number_of_tracks_generate => 'Número de canciones a generar';
|
String get number_of_tracks_generate => 'Número de canciones a generar';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get acousticness => 'Acousticness';
|
String get not_acoustic => 'not_acoustic';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get danceability => 'Danceability';
|
String get dance_ability => 'dance_ability';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get energy => 'Energía';
|
String get energy => 'Energía';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get instrumentalness => 'Instrumentalidad';
|
String get not_instrumental => 'Instrumentalidad';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get liveness => 'En vivo';
|
String get liveness => 'En vivo';
|
||||||
@ -690,7 +690,7 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String get loudness => 'Volumen';
|
String get loudness => 'Volumen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get speechiness => 'Habla';
|
String get talkative => 'Habla';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get valence => 'Valencia';
|
String get valence => 'Valencia';
|
||||||
@ -809,7 +809,7 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String get sleep_timer => 'Temporizador de apagado';
|
String get sleep_timer => 'Temporizador de apagado';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String mins(Object minutes) {
|
String minutes(Object minutes) {
|
||||||
return '$minutes minutos';
|
return '$minutes minutos';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String get failed_to_encrypt => 'Error al cifrar';
|
String get failed_to_encrypt => 'Error al cifrar';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get encryption_failed_warning => 'Spotube utiliza el cifrado para almacenar sus datos de forma segura. Pero ha fallado. Por lo tanto, volverá a un almacenamiento no seguro\nSi está utilizando Linux, asegúrese de tener instalados servicios secretos como gnome-keyring, kde-wallet y keepassxc';
|
String get encryption_failed_warning => 'Spotube utiliza el cifrado para almacenar sus datos de forma segura. Pero ha fallado. Por lo tanto, volverá a un almacenamiento no seguro\nSi está utilizando Linux, asegúrese de tener instalados servicios secretos como gnome-keyring, kde-wallet y KeePassXC';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get querying_info => 'Consultando información...';
|
String get querying_info => 'Consultando información...';
|
||||||
@ -1207,15 +1207,15 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String get owned_by_you => 'En tu posesión';
|
String get owned_by_you => 'En tu posesión';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl) {
|
String copied_share_url_to_clipboard(Object shareUrl) {
|
||||||
return 'Copiado $shareUrl al portapapeles';
|
return 'Copiado $shareUrl al portapapeles';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get spotify_hipotetical_calculation => '*Esto se calcula en base al\npago por stream de Spotify de \$0.003 a \$0.005.\nEs un cálculo hipotético para dar\nuna idea de cuánto habría\npagado a los artistas si hubieras escuchado\nsu canción en Spotify.';
|
String get spotify_hypothetical_calculation => '*Esto se calcula en base al\npago por stream de Spotify de \$0.003 a \$0.005.\nEs un cálculo hipotético para dar\nuna idea de cuánto habría\npagado a los artistas si hubieras escuchado\nsu canción en Spotify.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String count_mins(Object minutes) {
|
String count_minutes(Object minutes) {
|
||||||
return '$minutes minutos';
|
return '$minutes minutos';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
String get shuffle_playlist => 'Erreproduzitu zerrenda ausazko ordenean';
|
String get shuffle_playlist => 'Erreproduzitu zerrenda ausazko ordenean';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get unshuffle_playlist => 'Desgaitu ausazko erreprodukzioa';
|
String get not_shuffle_playlist => 'Desgaitu ausazko erreprodukzioa';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get previous_track => 'Aurreko pista';
|
String get previous_track => 'Aurreko pista';
|
||||||
@ -590,7 +590,7 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
String get step_2 => '2. pausua';
|
String get step_2 => '2. pausua';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_2_steps => '1. Saioa hasita duzularik, sakatu F12 edo saguaren eskuineko botoia klikatu > Ikuskatu nabigatzaileko garapen tresnak irekitzeko.\n2. Joan \"Aplikazio\" (Chrome, Edge, Brave, etab.) edo \"Biltegiratzea\" (Firefox, Palemoon, etab.)\n3. Joan \"Cookieak\" atalera eta gero \"https://accounts.spotify.com\" azpiatalera';
|
String get step_2_steps => '1. Saioa hasita duzularik, sakatu F12 edo saguaren eskuineko botoia klikatu > Ikuskatu nabigatzaileko garapen tresnak irekitzeko.\n2. Joan \"Aplikazio\" (Chrome, Edge, Brave, etab.) edo \"Biltegiratzea\" (Firefox, Pale Moon, etab.)\n3. Joan \"Cookieak\" atalera eta gero \"https://accounts.spotify.com\" azpiatalera';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get step_3 => '3. pausua';
|
String get step_3 => '3. pausua';
|
||||||
@ -672,16 +672,16 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
String get number_of_tracks_generate => 'Sortzeko kanta kopurua';
|
String get number_of_tracks_generate => 'Sortzeko kanta kopurua';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get acousticness => 'Akustikotasuna';
|
String get not_acoustic => 'Akustikotasuna';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get danceability => 'Dantzagarritasuna';
|
String get dance_ability => 'Dantzagarritasuna';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get energy => 'Energia';
|
String get energy => 'Energia';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get instrumentalness => 'Instrumentaltasuna';
|
String get not_instrumental => 'Instrumentaltasuna';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get liveness => 'Zuzenean';
|
String get liveness => 'Zuzenean';
|
||||||
@ -690,7 +690,7 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
String get loudness => 'Ozentasuna';
|
String get loudness => 'Ozentasuna';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get speechiness => 'Hitzaldia';
|
String get talkative => 'Hitzaldia';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get valence => 'Balentzia';
|
String get valence => 'Balentzia';
|
||||||
@ -809,7 +809,7 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
String get sleep_timer => 'Itzaltzeko tenporizadorea';
|
String get sleep_timer => 'Itzaltzeko tenporizadorea';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String mins(Object minutes) {
|
String minutes(Object minutes) {
|
||||||
return '$minutes minutu';
|
return '$minutes minutu';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
String get failed_to_encrypt => 'Errorea zifratzean';
|
String get failed_to_encrypt => 'Errorea zifratzean';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get encryption_failed_warning => 'Spotube-ek zifratzea darabil datuak modu seguruan biltegiratzeko. Baina huts egin du. Hori dela eta, biltegiratzea ez da segurua izango\nLinux erabiltzen ari bazara, ziurtatu edozein sekretu-zerbitzu (gnome-keyring, kde-wallet, keepassxc etab.) instalatuta duzula';
|
String get encryption_failed_warning => 'Spotube-ek zifratzea darabil datuak modu seguruan biltegiratzeko. Baina huts egin du. Hori dela eta, biltegiratzea ez da segurua izango\nLinux erabiltzen ari bazara, ziurtatu edozein sekretu-zerbitzu (gnome-keyring, kde-wallet, KeePassXC etab.) instalatuta duzula';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get querying_info => 'Informazioa egiaztatzen...';
|
String get querying_info => 'Informazioa egiaztatzen...';
|
||||||
@ -1207,15 +1207,15 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
String get owned_by_you => 'Zure jabetzakoa';
|
String get owned_by_you => 'Zure jabetzakoa';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String copied_shareurl_to_clipboard(Object shareUrl) {
|
String copied_share_url_to_clipboard(Object shareUrl) {
|
||||||
return '$shareUrl arbelera kopiatua';
|
return '$shareUrl arbelera kopiatua';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get spotify_hipotetical_calculation => '*Sportify-k stream bakoitzeko duen \$0.003 eta \$0.005\nordainsarian oinarritua da. Kalkulu hipotetiko bat,\nkanta hauek Spotify-n entzun bazenitu,\nberaiek artistari zenbat ordaiduko lioketen jakin dezazun.';
|
String get spotify_hypothetical_calculation => '*Sportify-k stream bakoitzeko duen \$0.003 eta \$0.005\nordainsarian oinarritua da. Kalkulu hipotetiko bat,\nkanta hauek Spotify-n entzun bazenitu,\nberaiek artistari zenbat ordaiduko lioketen jakin dezazun.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String count_mins(Object minutes) {
|
String count_minutes(Object minutes) {
|
||||||
return '$minutes minutu';
|
return '$minutes minutu';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user