Compare commits
69
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f50ea21499 | ||
|
|
630804c5b5 | ||
|
|
6cce4183e9 | ||
|
|
35bd0d625c | ||
|
|
073d00b45b | ||
|
|
982cb13e7e | ||
|
|
6d3d4c8339 | ||
|
|
911e420c24 | ||
|
|
e69ff0325e | ||
|
|
7c1353a8aa | ||
|
|
4ce9a172b8 | ||
|
|
61a7b24084 | ||
|
|
8b2ca19f1a | ||
|
|
deafa8f4d3 | ||
|
|
c739935335 | ||
|
|
34e4a4f483 | ||
|
|
85c485509c | ||
|
|
026145e0c7 | ||
|
|
bb0cf5b547 | ||
|
|
d8acffa844 | ||
|
|
a1f1cddcbe | ||
|
|
d19612bb3c | ||
|
|
30e81961e8 | ||
|
|
a9873da802 | ||
|
|
6046e62f11 | ||
|
|
eb032619a0 | ||
|
|
d98f0a20a8 | ||
|
|
945b40249c | ||
|
|
1192642811 | ||
|
|
70772a61a9 | ||
|
|
66b3f031a5 | ||
|
|
56a9c115f8 | ||
|
|
bd10ed93af | ||
|
|
c3351f01e4 | ||
|
|
1d13384f6c | ||
|
|
598e225b00 | ||
|
|
d8090a8172 | ||
|
|
f47413686c | ||
|
|
c8a194cf32 | ||
|
|
f07ac1f322 | ||
|
|
02561b614f | ||
|
|
6ca2d02c69 | ||
|
|
300e103fed | ||
|
|
a77c0e5f32 | ||
|
|
cf644d508d | ||
|
|
452be8a22f | ||
|
|
1e816f65a5 | ||
|
|
d8496fe4c4 | ||
|
|
ca10956014 | ||
|
|
3984b84b6c | ||
|
|
493114e825 | ||
|
|
7856b6fd27 | ||
|
|
957b47680d | ||
|
|
86f6a944ff | ||
|
|
2631173a0d | ||
|
|
0dc1f810d2 | ||
|
|
0b8d19fbbe | ||
|
|
51bbe4193b | ||
|
|
d5945f6ac6 | ||
|
|
539f8824d1 | ||
|
|
539efc3f7b | ||
|
|
c0861ba796 | ||
|
|
52d308e5ae | ||
|
|
57f3afae97 | ||
|
|
80ff75debc | ||
|
|
d3a3bd2784 | ||
|
|
2dcccb804e | ||
|
|
ed7ac04d64 | ||
|
|
baf4d2bde6 |
+3
-3
@@ -7,7 +7,7 @@ When contributing to the development of GNOME Podcasts, please first discuss the
|
|||||||
If you have any questions regarding the use or development of GNOME Podcasts,
|
If you have any questions regarding the use or development of GNOME Podcasts,
|
||||||
want to discuss design or simply hang out, please join us in [#gnome-podcasts:matrix.org](https://matrix.to/#/#gnome-podcasts:matrix.org) or [#hammond on irc.gnome.org.](irc://irc.gnome.org/#hammond)
|
want to discuss design or simply hang out, please join us in [#gnome-podcasts:matrix.org](https://matrix.to/#/#gnome-podcasts:matrix.org) or [#hammond on irc.gnome.org.](irc://irc.gnome.org/#hammond)
|
||||||
|
|
||||||
Please note we have a [code of conduct](https://wiki.gnome.org/Foundation/CodeOfConduc), please follow it in all your interactions with the project.
|
Please note we have a [code of conduct](/code-of-conduct.md), please follow it in all your interactions with the project.
|
||||||
|
|
||||||
## Source repository
|
## Source repository
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ Steps to reproduce:
|
|||||||
|
|
||||||
## Merge Request Process
|
## Merge Request Process
|
||||||
|
|
||||||
1. Ensure your code compiles. Run `make` before creating the merge request.
|
1. Ensure your code compiles. Run `meson` & `ninja` before creating the merge request.
|
||||||
2. Ensure the test suit passes. Run `cargo test -- --test-threads=1`.
|
2. Ensure the test suit passes. Run `cargo test -- --test-threads=1`.
|
||||||
3. Ensure your code is properly formatted. Run `cargo fmt --all`.
|
3. Ensure your code is properly formatted. Run `cargo fmt --all`.
|
||||||
4. If you're adding new API, it must be properly documented.
|
4. If you're adding new API, it must be properly documented.
|
||||||
@@ -114,4 +114,4 @@ Steps to reproduce:
|
|||||||
do not have permission to do that, you may request the second reviewer to merge it for you.
|
do not have permission to do that, you may request the second reviewer to merge it for you.
|
||||||
|
|
||||||
## Code of Conduct
|
## Code of Conduct
|
||||||
We follow the Gnome [Code of Conduct.](https://wiki.gnome.org/Foundation/CodeOfConduct)
|
We follow the [GNOME Foundation Code of Conduct](/code-of-conduct.md).
|
||||||
|
|||||||
Generated
+1150
-1126
File diff suppressed because it is too large
Load Diff
@@ -38,13 +38,13 @@ Here are the dependencies you will need.
|
|||||||
```sh
|
```sh
|
||||||
# Add flathub and the gnome-nightly repo
|
# Add flathub and the gnome-nightly repo
|
||||||
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||||
flatpak remote-add --user --if-not-exists gnome-nightly https://sdk.gnome.org/gnome-nightly.flatpakrepo
|
flatpak remote-add --user --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
|
||||||
|
|
||||||
# Install the gnome-nightly Sdk and Platform runtime
|
# Install the gnome-nightly Sdk and Platform runtime
|
||||||
flatpak install --user gnome-nightly org.gnome.Sdk org.gnome.Platform
|
flatpak install --user gnome-nightly org.gnome.Sdk org.gnome.Platform
|
||||||
|
|
||||||
# Install the required rust-stable extension from flathub
|
# Install the required rust-stable extension from flathub
|
||||||
flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//18.08
|
flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//19.08
|
||||||
```
|
```
|
||||||
|
|
||||||
To install the resulting flatpak you can do:
|
To install the resulting flatpak you can do:
|
||||||
@@ -65,10 +65,10 @@ sudo ninja -C build install
|
|||||||
|
|
||||||
#### Dependencies
|
#### Dependencies
|
||||||
|
|
||||||
* Rust stable 1.27 or later along with cargo.
|
* Rust stable 1.34 or later along with cargo.
|
||||||
* Gtk+ 3.22 or later
|
* Gtk+ 3.24.11 or later
|
||||||
* Gstreamer 1.12 or later
|
* Gstreamer 1.16 or later
|
||||||
* libhandy
|
* libhandy 0.0.11 or later
|
||||||
* Meson
|
* Meson
|
||||||
* A network connection
|
* A network connection
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,126 @@
|
|||||||
|
# GNOME Code of Conduct
|
||||||
|
|
||||||
|
Thank you for being a part of the GNOME project. We value your participation and want everyone to have an enjoyable and fulfilling experience. Accordingly, all participants are expected to follow this Code of Conduct, and to show respect, understanding, and consideration to one another. Thank you for helping make this a welcoming, friendly community for everyone.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies to all online GNOME community spaces, including, but not limited to:
|
||||||
|
|
||||||
|
* Issue tracking systems - bugzilla.gnome.org
|
||||||
|
* Documentation and tutorials - developer.gnome.org
|
||||||
|
* Code repositories - git.gnome.org and gitlab.gnome.org
|
||||||
|
* Mailing lists - mail.gnome.org
|
||||||
|
* Wikis - wiki.gnome.org
|
||||||
|
* Chat and forums - irc.gnome.org, discourse.gnome.org, GNOME Telegram channels, and GNOME groups and channels on Matrix.org (including bridges to GNOME IRC channels)
|
||||||
|
* Community spaces hosted on gnome.org infrastructure
|
||||||
|
* Any other channels or groups which exist in order to discuss GNOME project activities
|
||||||
|
|
||||||
|
Communication channels and private conversations that are normally out of scope may be considered in scope if a GNOME participant is being stalked or harassed. Social media conversations may be considered in-scope if the incident occurred under a GNOME event hashtag, or when an official GNOME account on social media is tagged, or within any other discussion about GNOME. The GNOME Foundation reserves the right to take actions against behaviors that happen in any context, if they are deemed to be relevant to the GNOME project and its participants.
|
||||||
|
|
||||||
|
All participants in GNOME online community spaces are subject to the Code of Conduct. This includes GNOME Foundation board members, corporate sponsors, and paid employees. This also includes volunteers, maintainers, leaders, contributors, contribution reviewers, issue reporters, GNOME users, and anyone participating in discussion in GNOME online spaces.
|
||||||
|
|
||||||
|
## Reporting an Incident
|
||||||
|
|
||||||
|
If you believe that someone is violating the Code of Conduct, or have
|
||||||
|
any other concerns, please [contact the Code of Conduct committee](https://wiki.gnome.org/Foundation/CodeOfConduct/ReporterGuide).
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
The GNOME online community is dedicated to providing a positive experience for everyone, regardless of:
|
||||||
|
|
||||||
|
* age
|
||||||
|
* body size
|
||||||
|
* caste
|
||||||
|
* citizenship
|
||||||
|
* disability
|
||||||
|
* education
|
||||||
|
* ethnicity
|
||||||
|
* familial status
|
||||||
|
* gender expression
|
||||||
|
* gender identity
|
||||||
|
* genetic information
|
||||||
|
* immigration status
|
||||||
|
* level of experience
|
||||||
|
* nationality
|
||||||
|
* personal appearance
|
||||||
|
* pregnancy
|
||||||
|
* race
|
||||||
|
* religion
|
||||||
|
* sex characteristics
|
||||||
|
* sexual orientation
|
||||||
|
* sexual identity
|
||||||
|
* socio-economic status
|
||||||
|
* tribe
|
||||||
|
* veteran status
|
||||||
|
|
||||||
|
### Community Guidelines
|
||||||
|
|
||||||
|
Examples of behavior that contributes to creating a positive environment include:
|
||||||
|
|
||||||
|
* **Be friendly.** Use welcoming and inclusive language.
|
||||||
|
* **Be empathetic.** Be respectful of differing viewpoints and experiences.
|
||||||
|
* **Be respectful.** When we disagree, we do so in a polite and constructive manner.
|
||||||
|
* **Be considerate.** Remember that decisions are often a difficult choice between competing priorities. Focus on what is best for the community. Keep discussions around technology choices constructive and respectful.
|
||||||
|
* **Be patient and generous.** If someone asks for help it is because they need it. When documentation is available that answers the question, politely point them to it. If the question is off-topic, suggest a more appropriate online space to seek help.
|
||||||
|
* **Try to be concise.** Read the discussion before commenting in order to not repeat a point that has been made.
|
||||||
|
|
||||||
|
### Inappropriate Behavior
|
||||||
|
|
||||||
|
Community members asked to stop any inappropriate behavior are expected to comply immediately.
|
||||||
|
|
||||||
|
We want all participants in the GNOME community have the best possible experience they can. In order to be clear what that means, we've provided a list of examples of behaviors that are inappropriate for GNOME community spaces:
|
||||||
|
|
||||||
|
* **Deliberate intimidation, stalking, or following.**
|
||||||
|
* **Sustained disruption of online discussion, talks, or other events.** Sustained disruption of events, online discussions, or meetings, including talks and presentations, will not be tolerated. This includes 'Talking over' or 'heckling' event speakers or influencing crowd actions that cause hostility in event sessions. Sustained disruption also includes drinking alcohol to excess or using recreational drugs to excess, or pushing others to do so.
|
||||||
|
* **Harassment of people who don't drink alcohol.** We do not tolerate derogatory comments about those who abstain from alcohol or other substances. We do not tolerate pushing people to drink, talking about their abstinence or preferences to others, or pressuring them to drink - physically or through jeering.
|
||||||
|
* **Sexist, racist, homophobic, transphobic, ableist language or otherwise exclusionary language.** This includes deliberately referring to someone by a gender that they do not identify with, and/or questioning the legitimacy of an individual's gender identity. If you're unsure if a word is derogatory, don't use it. This also includes repeated subtle and/or indirect discrimination.
|
||||||
|
* **Unwelcome sexual attention or behavior that contributes to a sexualized environment.** This includes sexualized comments, jokes or imagery in interactions, communications or presentation materials, as well as inappropriate touching, groping, or sexual advances. Sponsors should not use sexualized images, activities, or other material. Meetup organizing staff and other volunteer organizers should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment.
|
||||||
|
* **Unwelcome physical contact.** This includes touching a person without permission, including sensitive areas such as their hair, pregnant stomach, mobility device (wheelchair, scooter, etc) or tattoos. This also includes physically blocking or intimidating another person. Physical contact or simulated physical contact (such as emojis like "kiss") without affirmative consent is not acceptable. This includes sharing or distribution of sexualized images or text.
|
||||||
|
* **Violence or threats of violence.** Violence and threats of violence are not acceptable - online or offline. This includes incitement of violence toward any individual, including encouraging a person to commit self-harm. This also includes posting or threatening to post other people's personally identifying information ("doxxing") online.
|
||||||
|
* **Influencing or encouraging inappropriate behavior.** If you influence or encourage another person to violate the Code of Conduct, you may face the same consequences as if you had violated the Code of Conduct.
|
||||||
|
* **Possession of an offensive weapon at a GNOME event.** This includes anything deemed to be a weapon by the event organizers.
|
||||||
|
|
||||||
|
The GNOME community prioritizes marginalized people's safety over privileged people's comfort. The committee will not act on complaints regarding:
|
||||||
|
|
||||||
|
* "Reverse"-isms, including "reverse racism," "reverse sexism," and "cisphobia"
|
||||||
|
* Reasonable communication of boundaries, such as "leave me alone," "go away," or "I'm not discussing this with you."
|
||||||
|
* Criticizing racist, sexist, cissexist, or otherwise oppressive behavior or assumptions
|
||||||
|
* Communicating boundaries or criticizing oppressive behavior in a "tone" you don't find congenial
|
||||||
|
|
||||||
|
The examples listed above are not against the Code of Conduct. If you have questions about the above statements, please [read this document](https://github.com/sagesharp/code-of-conduct-template/blob/master/code-of-conduct/example-reversisms.md#supporting-diversity).
|
||||||
|
|
||||||
|
If a participant engages in behavior that violates this code of conduct, the GNOME Code of Conduct committee may take any action they deem appropriate. Examples of consequences are outlined in the [Committee Procedures Guide](https://wiki.gnome.org/Foundation/CodeOfConduct/CommitteeProcedures).
|
||||||
|
|
||||||
|
## Procedure for Handling Incidents
|
||||||
|
|
||||||
|
* [Reporter Guide](https://wiki.gnome.org/Foundation/CodeOfConduct/ReporterGuide)
|
||||||
|
|
||||||
|
* [Moderator Procedures](https://wiki.gnome.org/Foundation/CodeOfConduct/ModeratorProcedures)
|
||||||
|
|
||||||
|
* [Committee Procedures Guide](https://wiki.gnome.org/Foundation/CodeOfConduct/CommitteeProcedures)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The GNOME Online Code of Conduct is licensed under a [Creative Commons Attribution Share-Alike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
The GNOME Online Code of Conduct was forked from the example policy from the [Geek Feminism wiki, created by the Ada Initiative and other volunteers](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy), which is under a Creative Commons Zero license.
|
||||||
|
|
||||||
|
Additional language was incorporated and modified from the following Codes of Conduct:
|
||||||
|
|
||||||
|
* [Citizen Code of Conduct](http://citizencodeofconduct.org/) is licensed [Creative Commons Attribution Share-Alike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/).
|
||||||
|
* [Code of Conduct template](https://github.com/sagesharp/code-of-conduct-template/) is licensed [Creative Commons Attribution Share-Alike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/) by [Otter Tech](https://otter.technology/code-of-conduct-training)
|
||||||
|
* [Contributor Covenant version 1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct) (licensed [CC BY 4.0](https://github.com/ContributorCovenant/contributor_covenant/blob/master/LICENSE.md))
|
||||||
|
* [Data Carpentry Code of Conduct](https://docs.carpentries.org/topic_folders/policies/index_coc.html) is licensed [Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
* [Django Project Code of Conduct](https://www.djangoproject.com/conduct/) is licensed under a [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/)
|
||||||
|
* [Fedora Code of Conduct](http://fedoraproject.org/code-of-conduct)
|
||||||
|
* [Geek Feminism Anti-harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy) which is under a [Creative Commons Zero license](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||||
|
* [Previous GNOME Foundation Code of Conduct](https://wiki.gnome.org/action/recall/Foundation/CodeOfConduct/Old)
|
||||||
|
* [LGBTQ in Technology Slack Code of Conduct](https://lgbtq.technology/coc.html) licensed [Creative Commons Zero](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||||
|
* [Mozilla Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/) is licensed [Creative Commons Attribution-ShareAlike 3.0 Unported License](https://creativecommons.org/licenses/by-sa/3.0/).
|
||||||
|
* [Python Mentors Code of Conduct](http://pythonmentors.com/)
|
||||||
|
* [Speak Up! Community Code of Conduct](http://web.archive.org/web/20141109123859/http://speakup.io/coc.html), licensed under a [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/)
|
||||||
|
|
||||||
+10
-11
@@ -11,22 +11,21 @@ dependency('dbus-1')
|
|||||||
dependency('glib-2.0', version: '>= 2.56')
|
dependency('glib-2.0', version: '>= 2.56')
|
||||||
dependency('gio-2.0', version: '>= 2.56')
|
dependency('gio-2.0', version: '>= 2.56')
|
||||||
dependency('gdk-pixbuf-2.0')
|
dependency('gdk-pixbuf-2.0')
|
||||||
dependency('gtk+-3.0', version: '>= 3.24.7')
|
dependency('gtk+-3.0', version: '>= 3.24.11')
|
||||||
dependency('libhandy-0.0', version: '>= 0.0.9')
|
dependency('libhandy-0.0', version: '>= 0.0.11')
|
||||||
|
|
||||||
dependency('gstreamer-1.0', version: '>= 1.12')
|
dependency('gstreamer-1.0', version: '>= 1.16')
|
||||||
dependency('gstreamer-base-1.0', version: '>= 1.12')
|
dependency('gstreamer-base-1.0', version: '>= 1.16')
|
||||||
dependency('gstreamer-audio-1.0', version: '>= 1.12')
|
dependency('gstreamer-audio-1.0', version: '>= 1.16')
|
||||||
dependency('gstreamer-video-1.0', version: '>= 1.12')
|
dependency('gstreamer-video-1.0', version: '>= 1.16')
|
||||||
dependency('gstreamer-player-1.0', version: '>= 1.12')
|
dependency('gstreamer-player-1.0', version: '>= 1.16')
|
||||||
dependency('gstreamer-plugins-base-1.0', version: '>= 1.12')
|
dependency('gstreamer-plugins-base-1.0', version: '>= 1.16')
|
||||||
dependency('gstreamer-plugins-bad-1.0', version: '>= 1.12')
|
dependency('gstreamer-plugins-bad-1.0', version: '>= 1.16')
|
||||||
dependency('gstreamer-bad-audio-1.0', version: '>= 1.12')
|
dependency('gstreamer-bad-audio-1.0', version: '>= 1.16')
|
||||||
|
|
||||||
cargo = find_program('cargo', required: true)
|
cargo = find_program('cargo', required: true)
|
||||||
gresource = find_program('glib-compile-resources', required: true)
|
gresource = find_program('glib-compile-resources', required: true)
|
||||||
gschemas = find_program('glib-compile-schemas', required: true)
|
gschemas = find_program('glib-compile-schemas', required: true)
|
||||||
cargo_vendor = find_program('cargo-vendor', required: false)
|
|
||||||
|
|
||||||
if get_option('profile') == 'development'
|
if get_option('profile') == 'development'
|
||||||
profile = '.Devel'
|
profile = '.Devel'
|
||||||
|
|||||||
@@ -10,19 +10,13 @@
|
|||||||
"tags" : [
|
"tags" : [
|
||||||
"nightly"
|
"nightly"
|
||||||
],
|
],
|
||||||
"desktop-file-name-suffix" : " ☢️",
|
|
||||||
"finish-args" : [
|
"finish-args" : [
|
||||||
"--filesystem=xdg-run/dconf",
|
|
||||||
"--filesystem=~/.config/dconf:ro",
|
|
||||||
"--talk-name=ca.desrt.dconf",
|
|
||||||
"--env=DCONF_USER_CONFIG_DIR=.config/dconf",
|
|
||||||
"--share=network",
|
"--share=network",
|
||||||
"--share=ipc",
|
"--share=ipc",
|
||||||
"--socket=x11",
|
"--socket=x11",
|
||||||
|
"--socket=fallback-x11",
|
||||||
"--socket=wayland",
|
"--socket=wayland",
|
||||||
"--socket=pulseaudio",
|
"--socket=pulseaudio",
|
||||||
"--device=dri",
|
|
||||||
"--own-name=org.mpris.MediaPlayer2.Podcasts",
|
|
||||||
"--env=USE_PLAYBING3=1"
|
"--env=USE_PLAYBING3=1"
|
||||||
],
|
],
|
||||||
"build-options" : {
|
"build-options" : {
|
||||||
@@ -41,7 +35,7 @@
|
|||||||
"name" : "libhandy",
|
"name" : "libhandy",
|
||||||
"buildsystem" : "meson",
|
"buildsystem" : "meson",
|
||||||
"config-opts" : [
|
"config-opts" : [
|
||||||
"-Dintrospection=enabled",
|
"-Dintrospection=disabled",
|
||||||
"-Dgtk_doc=false",
|
"-Dgtk_doc=false",
|
||||||
"-Dtests=false",
|
"-Dtests=false",
|
||||||
"-Dexamples=false",
|
"-Dexamples=false",
|
||||||
@@ -56,13 +50,14 @@
|
|||||||
{
|
{
|
||||||
"type" : "git",
|
"type" : "git",
|
||||||
"url" : "https://source.puri.sm/Librem5/libhandy.git",
|
"url" : "https://source.puri.sm/Librem5/libhandy.git",
|
||||||
"commit" : "56b0aa62f6251ee19a88fc208b7ca8dcf9c9633c"
|
"commit" : "f5909a897f70143bdd2f89f47a63c1bf848330ce"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name" : "gnome-podcasts",
|
"name" : "gnome-podcasts",
|
||||||
"buildsystem" : "meson",
|
"buildsystem" : "meson",
|
||||||
|
"builddir" : "true",
|
||||||
"config-opts" : [
|
"config-opts" : [
|
||||||
"-Dprofile=development"
|
"-Dprofile=development"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -12,17 +12,12 @@
|
|||||||
],
|
],
|
||||||
"desktop-file-name-suffix" : " ☢️",
|
"desktop-file-name-suffix" : " ☢️",
|
||||||
"finish-args" : [
|
"finish-args" : [
|
||||||
"--filesystem=xdg-run/dconf",
|
|
||||||
"--filesystem=~/.config/dconf:ro",
|
|
||||||
"--talk-name=ca.desrt.dconf",
|
|
||||||
"--env=DCONF_USER_CONFIG_DIR=.config/dconf",
|
|
||||||
"--share=network",
|
"--share=network",
|
||||||
"--share=ipc",
|
"--share=ipc",
|
||||||
"--socket=x11",
|
"--socket=x11",
|
||||||
|
"--socket=fallback-x11",
|
||||||
"--socket=wayland",
|
"--socket=wayland",
|
||||||
"--socket=pulseaudio",
|
"--socket=pulseaudio",
|
||||||
"--device=dri",
|
|
||||||
"--own-name=org.mpris.MediaPlayer2.Podcasts",
|
|
||||||
"--env=USE_PLAYBING3=1"
|
"--env=USE_PLAYBING3=1"
|
||||||
],
|
],
|
||||||
"build-options" : {
|
"build-options" : {
|
||||||
@@ -49,14 +44,14 @@
|
|||||||
"-Dglade_catalog=disabled"
|
"-Dglade_catalog=disabled"
|
||||||
],
|
],
|
||||||
"cleanup" : [
|
"cleanup" : [
|
||||||
"/include",
|
"/include",
|
||||||
"/lib/pkgconfig"
|
"/lib/pkgconfig"
|
||||||
],
|
],
|
||||||
"sources" : [
|
"sources" : [
|
||||||
{
|
{
|
||||||
"type" : "git",
|
"type" : "git",
|
||||||
"url" : "https://source.puri.sm/Librem5/libhandy.git",
|
"url" : "https://source.puri.sm/Librem5/libhandy.git",
|
||||||
"commit" : "56b0aa62f6251ee19a88fc208b7ca8dcf9c9633c"
|
"commit" : "f5909a897f70143bdd2f89f47a63c1bf848330ce"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
+21
-20
@@ -5,37 +5,38 @@ version = "0.1.0"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ammonia = "2.0.0"
|
ammonia = "3.0.0"
|
||||||
chrono = "0.4.6"
|
chrono = "0.4.9"
|
||||||
derive_builder = "0.7.1"
|
derive_builder = "0.8.0"
|
||||||
lazy_static = "1.3.0"
|
lazy_static = "1.4.0"
|
||||||
log = "0.4.6"
|
log = "0.4.8"
|
||||||
rayon = "1.0.3"
|
rayon = "1.2.0"
|
||||||
rfc822_sanitizer = "0.3.3"
|
rfc822_sanitizer = "0.3.3"
|
||||||
rss = "1.7.0"
|
rss = "1.8.0"
|
||||||
url = "1.7.2"
|
url = "2.1.0"
|
||||||
xdg = "2.2.0"
|
xdg = "2.2.0"
|
||||||
xml-rs = "0.8.0"
|
xml-rs = "0.8.0"
|
||||||
futures = "0.1.25"
|
futures = "0.1.29"
|
||||||
hyper = "0.12.25"
|
hyper = "0.12.35"
|
||||||
http = "0.1.16"
|
http = "0.1.19"
|
||||||
tokio = "0.1.18"
|
tokio = "0.1.22"
|
||||||
hyper-tls = "0.3.2"
|
hyper-tls = "0.3.2"
|
||||||
native-tls = "0.2.2"
|
native-tls = "0.2.3"
|
||||||
num_cpus = "1.10.0"
|
num_cpus = "1.10.1"
|
||||||
failure = "0.1.5"
|
failure = "0.1.6"
|
||||||
failure_derive = "0.1.5"
|
failure_derive = "0.1.6"
|
||||||
|
base64 = "0.10.1"
|
||||||
|
|
||||||
[dependencies.diesel]
|
[dependencies.diesel]
|
||||||
features = ["sqlite", "r2d2"]
|
features = ["sqlite", "r2d2"]
|
||||||
version = "=1.3.0"
|
version = "1.4.3"
|
||||||
|
|
||||||
[dependencies.diesel_migrations]
|
[dependencies.diesel_migrations]
|
||||||
features = ["sqlite"]
|
features = ["sqlite"]
|
||||||
version = "=1.3.0"
|
version = "1.4.0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rand = "0.6.5"
|
rand = "0.7.2"
|
||||||
tempdir = "0.3.7"
|
tempdir = "0.3.7"
|
||||||
pretty_assertions = "0.6.1"
|
pretty_assertions = "0.6.1"
|
||||||
maplit = "1.0.1"
|
maplit = "1.0.2"
|
||||||
|
|||||||
@@ -62,7 +62,6 @@
|
|||||||
missing_copy_implementations
|
missing_copy_implementations
|
||||||
)]
|
)]
|
||||||
#![allow(proc_macro_derive_resolution_fallback)]
|
#![allow(proc_macro_derive_resolution_fallback)]
|
||||||
// #![deny(warnings)]
|
|
||||||
|
|
||||||
//! FIXME: Docs
|
//! FIXME: Docs
|
||||||
|
|
||||||
@@ -110,7 +109,7 @@ pub use crate::models::{Episode, EpisodeWidgetModel, Show, ShowCoverModel, Sourc
|
|||||||
// Keep this in sync with Tor-browser releases
|
// Keep this in sync with Tor-browser releases
|
||||||
/// The user-agent to be used for all the requests.
|
/// The user-agent to be used for all the requests.
|
||||||
/// It originates from the Tor-browser UA.
|
/// It originates from the Tor-browser UA.
|
||||||
pub const USER_AGENT: &str = "Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0";
|
pub const USER_AGENT: &str = "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0";
|
||||||
|
|
||||||
/// [XDG Base Direcotory](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) Paths.
|
/// [XDG Base Direcotory](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) Paths.
|
||||||
#[allow(missing_debug_implementations)]
|
#[allow(missing_debug_implementations)]
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ use hyper::{Body, Client};
|
|||||||
use hyper_tls::HttpsConnector;
|
use hyper_tls::HttpsConnector;
|
||||||
|
|
||||||
use http::header::{
|
use http::header::{
|
||||||
HeaderValue, ETAG, IF_MODIFIED_SINCE, IF_NONE_MATCH, LAST_MODIFIED, LOCATION,
|
HeaderValue, AUTHORIZATION, ETAG, IF_MODIFIED_SINCE, IF_NONE_MATCH, LAST_MODIFIED, LOCATION,
|
||||||
USER_AGENT as USER_AGENT_HEADER,
|
USER_AGENT as USER_AGENT_HEADER,
|
||||||
};
|
};
|
||||||
use http::{Request, Response, StatusCode, Uri};
|
use http::{Request, Response, StatusCode, Uri};
|
||||||
@@ -35,6 +35,8 @@ use http::{Request, Response, StatusCode, Uri};
|
|||||||
use futures::future::{loop_fn, Future, Loop};
|
use futures::future::{loop_fn, Future, Loop};
|
||||||
use futures::prelude::*;
|
use futures::prelude::*;
|
||||||
|
|
||||||
|
use base64::{encode_config, URL_SAFE};
|
||||||
|
|
||||||
use crate::database::connection;
|
use crate::database::connection;
|
||||||
use crate::errors::*;
|
use crate::errors::*;
|
||||||
use crate::feed::{Feed, FeedBuilder};
|
use crate::feed::{Feed, FeedBuilder};
|
||||||
@@ -65,7 +67,7 @@ impl Save<Source> for Source {
|
|||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get()?;
|
let con = db.get()?;
|
||||||
|
|
||||||
self.save_changes::<Source>(&con).map_err(From::from)
|
self.save_changes::<Source>(&*con).map_err(From::from)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -276,6 +278,18 @@ impl Source {
|
|||||||
let uri = Uri::from_str(self.uri()).unwrap();
|
let uri = Uri::from_str(self.uri()).unwrap();
|
||||||
let mut req = Request::get(uri).body(Body::empty()).unwrap();
|
let mut req = Request::get(uri).body(Body::empty()).unwrap();
|
||||||
|
|
||||||
|
if let Ok(url) = Url::parse(self.uri()) {
|
||||||
|
if let Some(password) = url.password() {
|
||||||
|
let mut auth = "Basic ".to_owned();
|
||||||
|
auth.push_str(&encode_config(
|
||||||
|
&format!("{}:{}", url.username(), password),
|
||||||
|
URL_SAFE,
|
||||||
|
));
|
||||||
|
req.headers_mut()
|
||||||
|
.insert(AUTHORIZATION, HeaderValue::from_str(&auth).unwrap());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Set the UserAgent cause ppl still seem to check it for some reason...
|
// Set the UserAgent cause ppl still seem to check it for some reason...
|
||||||
req.headers_mut()
|
req.headers_mut()
|
||||||
.insert(USER_AGENT_HEADER, HeaderValue::from_static(USER_AGENT));
|
.insert(USER_AGENT_HEADER, HeaderValue::from_static(USER_AGENT));
|
||||||
|
|||||||
@@ -96,5 +96,4 @@ mod tests {
|
|||||||
let item = Some(&extension);
|
let item = Some(&extension);
|
||||||
assert_eq!(parse_itunes_duration(item), Some(6970));
|
assert_eq!(parse_itunes_duration(item), Some(6970));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ pub fn url_cleaner(s: &str) -> String {
|
|||||||
// https://rust-lang-nursery.github.io/rust-cookbook/net.html
|
// https://rust-lang-nursery.github.io/rust-cookbook/net.html
|
||||||
// #remove-fragment-identifiers-and-query-pairs-from-a-url
|
// #remove-fragment-identifiers-and-query-pairs-from-a-url
|
||||||
match Url::parse(s) {
|
match Url::parse(s) {
|
||||||
Ok(parsed) => parsed[..Position::AfterPath].to_owned(),
|
Ok(parsed) => parsed[..Position::AfterQuery].to_owned(),
|
||||||
_ => s.trim().to_owned(),
|
_ => s.trim().to_owned(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -290,8 +290,8 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_url_cleaner() -> Result<(), Error> {
|
fn test_url_cleaner() -> Result<(), Error> {
|
||||||
let good_url = "http://traffic.megaphone.fm/FL8608731318.mp3";
|
let good_url = "http://traffic.megaphone.fm/FL8608731318.mp3?updated=1484685184";
|
||||||
let bad_url = "http://traffic.megaphone.fm/FL8608731318.mp3?updated=1484685184";
|
let bad_url = "http://traffic.megaphone.fm/FL8608731318.mp3?updated=1484685184#foobar";
|
||||||
|
|
||||||
assert_eq!(url_cleaner(bad_url), good_url);
|
assert_eq!(url_cleaner(bad_url), good_url);
|
||||||
assert_eq!(url_cleaner(good_url), good_url);
|
assert_eq!(url_cleaner(good_url), good_url);
|
||||||
|
|||||||
@@ -5,14 +5,14 @@ version = "0.1.0"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
error-chain = "0.12.0"
|
error-chain = "0.12.1"
|
||||||
log = "0.4.6"
|
log = "0.4.8"
|
||||||
mime_guess = "1.8.6"
|
mime_guess = "2.0.1"
|
||||||
reqwest = "0.9.12"
|
reqwest = "0.9.22"
|
||||||
tempdir = "0.3.7"
|
tempdir = "0.3.7"
|
||||||
glob = "0.3.0"
|
glob = "0.3.0"
|
||||||
failure = "0.1.5"
|
failure = "0.1.6"
|
||||||
failure_derive = "0.1.5"
|
failure_derive = "0.1.6"
|
||||||
|
|
||||||
[dependencies.podcasts-data]
|
[dependencies.podcasts-data]
|
||||||
path = "../podcasts-data"
|
path = "../podcasts-data"
|
||||||
|
|||||||
@@ -39,7 +39,6 @@
|
|||||||
elided_lifetime_in_paths,
|
elided_lifetime_in_paths,
|
||||||
missing_copy_implementations
|
missing_copy_implementations
|
||||||
)]
|
)]
|
||||||
// #![deny(warnings)]
|
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate failure_derive;
|
extern crate failure_derive;
|
||||||
|
|||||||
+33
-27
@@ -5,48 +5,54 @@ version = "0.1.0"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
chrono = "0.4.6"
|
chrono = "0.4.9"
|
||||||
crossbeam-channel = "0.3.8"
|
crossbeam-channel = "0.3.9"
|
||||||
gdk = "0.10.0"
|
gdk = "0.11.0"
|
||||||
gdk-pixbuf = "0.6.0"
|
gdk-pixbuf = "0.7.0"
|
||||||
glib = "0.7.1"
|
gobject-sys = "0.9.0"
|
||||||
gst = { version = "0.13.0", package = "gstreamer" }
|
glib-sys = "0.9.0"
|
||||||
gst-player = { version = "0.13.0", package = "gstreamer-player" }
|
gst = { version = "0.14.0", package = "gstreamer" }
|
||||||
|
gst-player = { version = "0.14.0", package = "gstreamer-player" }
|
||||||
humansize = "1.1.0"
|
humansize = "1.1.0"
|
||||||
lazy_static = "1.3.0"
|
lazy_static = "1.4.0"
|
||||||
log = "0.4.6"
|
log = "0.4.8"
|
||||||
loggerv = "0.7.1"
|
loggerv = "0.7.2"
|
||||||
open = "1.2.2"
|
open = "1.3.2"
|
||||||
rayon = "1.0.3"
|
rayon = "1.2.0"
|
||||||
url = "1.7.2"
|
url = "2.1.0"
|
||||||
failure = "0.1.5"
|
failure = "0.1.6"
|
||||||
failure_derive = "0.1.5"
|
failure_derive = "0.1.6"
|
||||||
fragile = "0.3.0"
|
fragile = "0.3.0"
|
||||||
regex = "1.1.3"
|
regex = "1.3.1"
|
||||||
reqwest = "0.9.12"
|
reqwest = "0.9.22"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.41"
|
||||||
# html2text = "0.1.8"
|
# html2text = "0.1.8"
|
||||||
html2text = { git = "https://github.com/jugglerchris/rust-html2text" }
|
html2text = { git = "https://github.com/jugglerchris/rust-html2text" }
|
||||||
|
mpris-player = "0.4.0"
|
||||||
|
|
||||||
[dependencies.gettext-rs]
|
[dependencies.gettext-rs]
|
||||||
git = "https://github.com/danigm/gettext-rs"
|
git = "https://github.com/danigm/gettext-rs"
|
||||||
branch = "no-gettext"
|
branch = "no-gettext"
|
||||||
features = ["gettext-system"]
|
features = ["gettext-system"]
|
||||||
|
|
||||||
[dependencies.gtk]
|
[dependencies.glib]
|
||||||
features = ["v3_24"]
|
features = ["subclassing"]
|
||||||
version = "0.6.0"
|
version = "0.8.2"
|
||||||
|
|
||||||
[dependencies.gio]
|
[dependencies.gio]
|
||||||
features = ["v2_50"]
|
features = ["v2_50", "subclassing"]
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
|
|
||||||
|
[dependencies.gtk]
|
||||||
|
features = ["v3_24", "subclassing"]
|
||||||
|
version = "0.7.0"
|
||||||
|
|
||||||
[dependencies.libhandy]
|
[dependencies.libhandy]
|
||||||
version = "0.3.0"
|
version = "0.4.0"
|
||||||
features = [ "v0_0_7"]
|
features = [ "v0_0_10"]
|
||||||
|
|
||||||
[dependencies.mpris-player]
|
# [dependencies.mpris-player]
|
||||||
version = "0.3.0"
|
# version = "0.4.0"
|
||||||
# git = "https://gitlab.gnome.org/World/Rust/mpris-player"
|
# git = "https://gitlab.gnome.org/World/Rust/mpris-player"
|
||||||
|
|
||||||
[dependencies.podcasts-data]
|
[dependencies.podcasts-data]
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ da
|
|||||||
de
|
de
|
||||||
en_GB
|
en_GB
|
||||||
es
|
es
|
||||||
|
eu
|
||||||
fi
|
fi
|
||||||
fr
|
fr
|
||||||
fur
|
fur
|
||||||
|
|||||||
+377
-428
@@ -1,428 +1,377 @@
|
|||||||
# Danish translation for podcasts.
|
# Danish translation for podcasts.
|
||||||
# Copyright (C) 2019 podcasts's COPYRIGHT HOLDER
|
# Copyright (C) 2019 podcasts's COPYRIGHT HOLDER
|
||||||
# This file is distributed under the same license as the podcasts package.
|
# This file is distributed under the same license as the podcasts package.
|
||||||
# scootergrisen, 2019.
|
# scootergrisen, 2019.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts master\n"
|
"Project-Id-Version: podcasts master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-10 10:46+0000\n"
|
"POT-Creation-Date: 2019-05-19 10:38+0000\n"
|
||||||
"PO-Revision-Date: 2019-02-22 00:00+0200\n"
|
"PO-Revision-Date: 2019-05-22 14:50+0200\n"
|
||||||
"Last-Translator: scootergrisen\n"
|
"Last-Translator: scootergrisen\n"
|
||||||
"Language-Team: Danish\n"
|
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||||
"Language: da\n"
|
"Language: da\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
msgstr "Øverste placering af hovedvindue som sidst var åbent"
|
msgstr "Øverste placering af hovedvindue som sidst var åbent"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:19
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:19
|
||||||
msgid "Left position of the last open main window"
|
msgid "Left position of the last open main window"
|
||||||
msgstr "Venstre placering af hovedvindue som sidst var åbent"
|
msgstr "Venstre placering af hovedvindue som sidst var åbent"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:23
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:23
|
||||||
msgid "Height of the last open main window"
|
msgid "Height of the last open main window"
|
||||||
msgstr "Højde på hovedvindue som sidst var åbent"
|
msgstr "Højde på hovedvindue som sidst var åbent"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:27
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:27
|
||||||
msgid "Width of the last open main window"
|
msgid "Width of the last open main window"
|
||||||
msgstr "Bredde på hovedvindue som sidst var åbent"
|
msgstr "Bredde på hovedvindue som sidst var åbent"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:31
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:31
|
||||||
msgid "Maximized state of the last open main window"
|
msgid "Maximized state of the last open main window"
|
||||||
msgstr "Maksimeret tilstand på hovedvindue som sidst var åbent"
|
msgstr "Maksimeret tilstand på hovedvindue som sidst var åbent"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:36
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:36
|
||||||
msgid "Enable or disable dark theme"
|
msgid "Enable or disable dark theme"
|
||||||
msgstr "Aktivér eller deaktivér mørkt tema"
|
msgstr "Aktivér eller deaktivér mørkt tema"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:41
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:41
|
||||||
msgid "Whether to periodically refresh content"
|
msgid "Whether to periodically refresh content"
|
||||||
msgstr "Om indholdet jævnligt skal opdateres"
|
msgstr "Om indholdet jævnligt skal opdateres"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:46
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:46
|
||||||
msgid "How many periods of time to wait between automatic refreshes"
|
msgid "How many periods of time to wait between automatic refreshes"
|
||||||
msgstr "Hvor lang tid der skal gå mellem automatiske opdateringer"
|
msgstr "Hvor lang tid der skal gå mellem automatiske opdateringer"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:50
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:50
|
||||||
msgid "What period of time to wait between automatic refreshes"
|
msgid "What period of time to wait between automatic refreshes"
|
||||||
msgstr "Hvor lang tid der skal gå mellem automatiske opdateringer"
|
msgstr "Hvor lang tid der skal gå mellem automatiske opdateringer"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:54
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:54
|
||||||
msgid "Whether to refresh content after startup"
|
msgid "Whether to refresh content after startup"
|
||||||
msgstr "Om indholdet skal opdateres efter opstart"
|
msgstr "Om indholdet skal opdateres efter opstart"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:60
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:60
|
||||||
msgid "How many periods of time to wait between automatic cleanups"
|
msgid "How many periods of time to wait between automatic cleanups"
|
||||||
msgstr "Hvor lang tid der skal gå mellem automatiske oprydninger"
|
msgstr "Hvor lang tid der skal gå mellem automatiske oprydninger"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:64
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:64
|
||||||
msgid "What period of time to wait between automatic cleanups"
|
msgid "What period of time to wait between automatic cleanups"
|
||||||
msgstr "Hvor lang tid der skal gå mellem automatiske oprydninger"
|
msgstr "Hvor lang tid der skal gå mellem automatiske oprydninger"
|
||||||
|
|
||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:455
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcasts"
|
msgstr "Podcasts"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:4
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:10
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:10
|
||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Lyt til dine favorit podcasts fra dit skrivebord."
|
msgstr "Lyt til dine favorit podcasts fra dit skrivebord."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "@icon@"
|
msgid "Podcast;RSS;"
|
||||||
msgstr "@icon@"
|
msgstr "Podcast;RSS;"
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:8
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
msgid "Podcast app for GNOME"
|
||||||
msgid "Podcast;RSS;"
|
msgstr "Podcast-program til GNOME"
|
||||||
msgstr "Podcast;RSS;"
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:77
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:8
|
msgid "Jordan Petridis"
|
||||||
msgid "Podcast app for GNOME"
|
msgstr "Jordan Petridis"
|
||||||
msgstr "Podcast-program til GNOME"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:46
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:77
|
msgid "This show does not have episodes yet"
|
||||||
msgid "Jordan Petridis"
|
msgstr "Udsendelsen har endnu ikke nogen episoder"
|
||||||
msgstr "Jordan Petridis"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:62
|
||||||
#: podcasts-gtk/resources/gtk/empty_view.ui:46
|
msgid "If you think this is an error, please consider writing a bug report."
|
||||||
msgid "This show does not have episodes yet"
|
msgstr ""
|
||||||
msgstr "Udsendelsen har endnu ikke nogen episoder"
|
"Hvis du tror det er en fejl, så overvej venligst at skrive en fejlrapport."
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/empty_view.ui:62
|
#: podcasts-gtk/resources/gtk/empty_view.ui:106
|
||||||
msgid "If you think this is an error, please consider writing a bug report."
|
msgid "Get some shows"
|
||||||
msgstr ""
|
msgstr "Hent nogen udsendelser"
|
||||||
"Hvis du tror det er en fejl, så overvej venligst at skrive en fejlrapport."
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:143
|
||||||
#: podcasts-gtk/resources/gtk/empty_view.ui:106
|
msgid "Add new shows via feed URL"
|
||||||
msgid "Get some shows"
|
msgstr "Tilføj nye udsendelser via feed-URL"
|
||||||
msgstr "Hent nogen udsendelser"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:172
|
||||||
#: podcasts-gtk/resources/gtk/empty_view.ui:143
|
msgid "Import shows from another device"
|
||||||
msgid "Add new shows via feed URL"
|
msgstr "Importér udsendelser fra en anden enhed"
|
||||||
msgstr "Tilføj nye udsendelser via feed-URL"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
#: podcasts-gtk/resources/gtk/empty_view.ui:172
|
msgid "You’ve already listened to this episode."
|
||||||
msgid "Import shows from another device"
|
msgstr "Du har allerede lyttet til episoden."
|
||||||
msgstr "Importér udsendelser fra en anden enhed"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
msgid "Calculating episode size…"
|
||||||
msgid "Calculating episode size…"
|
msgstr "Udregner episodestørrelse …"
|
||||||
msgstr "Udregner episodestørrelse …"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
msgid "Play this episode"
|
||||||
msgid "Play this episode"
|
msgstr "Afspil episoden"
|
||||||
msgstr "Afspil episoden"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
msgid "Cancel the download process"
|
||||||
msgid "Cancel the download process"
|
msgstr "Annuller downloadprocessen"
|
||||||
msgstr "Annuller downloadprocessen"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
msgid "Download this episode"
|
||||||
msgid "Download this episode"
|
msgstr "Download episoden"
|
||||||
msgstr "Download episoden"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:7
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:7
|
msgid "_Check for New Episodes"
|
||||||
msgid "_Check for New Episodes"
|
msgstr "_Søg efter nye episoder"
|
||||||
msgstr "_Søg efter nye episoder"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:12
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:12
|
msgid "_Import Shows"
|
||||||
msgid "_Import Shows"
|
msgstr "_Importér udsendelser"
|
||||||
msgstr "_Importér udsendelser"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:16
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:16
|
msgid "_Export Shows"
|
||||||
msgid "_Export Shows"
|
msgstr "_Eksportér udsendelser"
|
||||||
msgstr "_Eksportér udsendelser"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
msgid "_Keyboard Shortcuts"
|
||||||
msgid "_Preferences"
|
msgstr "_Tastaturgenveje"
|
||||||
msgstr "_Indstillinger"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
msgid "_About Podcasts"
|
||||||
msgid "_Keyboard Shortcuts"
|
msgstr "_Om Podcasts"
|
||||||
msgstr "_Tastaturgenveje"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/headerbar.ui:189
|
||||||
msgid "_About Podcasts"
|
msgid "Add a new feed"
|
||||||
msgstr "_Om Podcasts"
|
msgstr "Tilføj et nyt feed"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
#: podcasts-gtk/resources/gtk/headerbar.ui:53
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:189
|
msgid "Enter feed address to add"
|
||||||
msgid "Add a new feed"
|
msgstr "Indtast adresse på feed der skal tilføjes"
|
||||||
msgstr "Tilføj et nyt feed"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:89
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:53
|
msgid "Add"
|
||||||
msgid "Enter feed address to add"
|
msgstr "Tilføj"
|
||||||
msgstr "Indtast adresse på feed der skal tilføjes"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:133
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:89
|
msgid "You are already subscribed to that feed!"
|
||||||
msgid "Add"
|
msgstr "Du har allerede abonneret på feedet!"
|
||||||
msgstr "Tilføj"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:169
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:133
|
msgid "Show Title"
|
||||||
msgid "You are already subscribed to that feed!"
|
msgstr "Vis titel"
|
||||||
msgstr "Du har allerede abonneret på feedet!"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:210
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:169
|
msgid "Back"
|
||||||
msgid "Show Title"
|
msgstr "Tilbage"
|
||||||
msgstr "Vis titel"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:12
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:210
|
msgid "General"
|
||||||
msgid "Back"
|
msgstr "Generelt"
|
||||||
msgstr "Tilbage"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:18
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:12
|
msgctxt "shortcut window"
|
||||||
msgid "General"
|
msgid "Check for new episodes"
|
||||||
msgstr "Generelt"
|
msgstr "Søg efter nye episoder"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:18
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Check for new episodes"
|
msgid "Quit the application"
|
||||||
msgstr "Søg efter nye episoder"
|
msgstr "Afslut programmet"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/home_view.ui:56
|
||||||
msgctxt "shortcut window"
|
msgid "Today"
|
||||||
msgid "Preferences"
|
msgstr "I dag"
|
||||||
msgstr "Indstillinger"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/home_view.ui:112
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
msgid "Yesterday"
|
||||||
msgctxt "shortcut window"
|
msgstr "I går"
|
||||||
msgid "Quit the application"
|
|
||||||
msgstr "Afslut programmet"
|
#: podcasts-gtk/resources/gtk/home_view.ui:168
|
||||||
|
msgid "This Week"
|
||||||
#: podcasts-gtk/resources/gtk/home_view.ui:56
|
msgstr "Denne uge"
|
||||||
msgid "Today"
|
|
||||||
msgstr "I dag"
|
#: podcasts-gtk/resources/gtk/home_view.ui:224
|
||||||
|
msgid "This Month"
|
||||||
#: podcasts-gtk/resources/gtk/home_view.ui:112
|
msgstr "Denne måned"
|
||||||
msgid "Yesterday"
|
|
||||||
msgstr "I går"
|
#: podcasts-gtk/resources/gtk/home_view.ui:281
|
||||||
|
msgid "Older"
|
||||||
#: podcasts-gtk/resources/gtk/home_view.ui:168
|
msgstr "Ældre"
|
||||||
msgid "This Week"
|
|
||||||
msgstr "Denne uge"
|
#: podcasts-gtk/resources/gtk/inapp_notif.ui:101
|
||||||
|
msgid "An in-app action notification"
|
||||||
#: podcasts-gtk/resources/gtk/home_view.ui:224
|
msgstr "En notifikation om programindbygget handling"
|
||||||
msgid "This Month"
|
|
||||||
msgstr "Denne måned"
|
#: podcasts-gtk/resources/gtk/inapp_notif.ui:112
|
||||||
|
msgid "Undo"
|
||||||
#: podcasts-gtk/resources/gtk/home_view.ui:281
|
msgstr "Fortryd"
|
||||||
msgid "Older"
|
|
||||||
msgstr "Ældre"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:72
|
||||||
|
msgid "Rewind 10 seconds"
|
||||||
#: podcasts-gtk/resources/gtk/inapp_notif.ui:101
|
msgstr "Spol 10 sekunder tilbage"
|
||||||
msgid "An in-app action notification"
|
|
||||||
msgstr "En notifikation om programindbygget handling"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:87
|
||||||
|
msgid "Play"
|
||||||
#: podcasts-gtk/resources/gtk/inapp_notif.ui:112
|
msgstr "Afspil"
|
||||||
msgid "Undo"
|
|
||||||
msgstr "Fortryd"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:103
|
||||||
|
msgid "Pause"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:72
|
msgstr "Pause"
|
||||||
msgid "Rewind 10 seconds"
|
|
||||||
msgstr "Spol 10 sekunder tilbage"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:119
|
||||||
|
msgid "Fast forward 10 seconds"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:87
|
msgstr "Spol 10 sekunder fremad"
|
||||||
msgid "Play"
|
|
||||||
msgstr "Afspil"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:285
|
||||||
|
msgid "Change the playback speed"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:103
|
msgstr "Skift afspilningshastigheden"
|
||||||
msgid "Pause"
|
|
||||||
msgstr "Pause"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:300
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:380
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:119
|
msgid "1.00×"
|
||||||
msgid "Fast forward 10 seconds"
|
msgstr "1,00×"
|
||||||
msgstr "Spol 10 sekunder fremad"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:344
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:285
|
msgid "1.50×"
|
||||||
msgid "Change the playback speed"
|
msgstr "1,50×"
|
||||||
msgstr "Skift afspilningshastigheden"
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:348
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:300
|
msgid "1.5 speed rate"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:380
|
msgstr "1,5 hastighed"
|
||||||
msgid "1.00×"
|
|
||||||
msgstr "1,00×"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:362
|
||||||
|
msgid "1.25×"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:344
|
msgstr "1,25×"
|
||||||
msgid "1.50×"
|
|
||||||
msgstr "1,50×"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:366
|
||||||
|
msgid "1.25 speed rate"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:348
|
msgstr "1,25 hastighed"
|
||||||
msgid "1.5 speed rate"
|
|
||||||
msgstr "1,5 hastighed"
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:384
|
||||||
|
msgid "Normal speed"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:362
|
msgstr "Normal hastighed"
|
||||||
msgid "1.25×"
|
|
||||||
msgstr "1,25×"
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
|
msgid "_Mark All Episodes as Played"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:366
|
msgstr "_Markér alle episoder som afspillet"
|
||||||
msgid "1.25 speed rate"
|
|
||||||
msgstr "1,25 hastighed"
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:11
|
||||||
|
msgid "_Website"
|
||||||
#: podcasts-gtk/resources/gtk/player_toolbar.ui:384
|
msgstr "_Websted"
|
||||||
msgid "Normal speed"
|
|
||||||
msgstr "Normal hastighed"
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:15
|
||||||
|
msgid "_Unsubscribe"
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
msgstr "_Afmeld abonnement"
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
#: podcasts-gtk/resources/gtk/show_menu.ui:51
|
||||||
msgstr "Indstillinger"
|
msgid "Open Website"
|
||||||
|
msgstr "Åbn websted"
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
#: podcasts-gtk/resources/gtk/show_menu.ui:64
|
||||||
msgstr "Udseende"
|
msgid "Mark All as Played"
|
||||||
|
msgstr "Markér alle som afspillet"
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
#: podcasts-gtk/resources/gtk/show_menu.ui:89
|
||||||
msgstr "Mørkt tema"
|
msgid "Unsubscribe"
|
||||||
|
msgstr "Afmeld abonnement"
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgstr "Slet afspillede episoder"
|
msgid "Fetching new episodes"
|
||||||
|
msgstr "Henter nye episoder"
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
#: podcasts-gtk/src/headerbar.rs:117
|
||||||
msgstr "Efter"
|
msgid "You are already subscribed to this show"
|
||||||
|
msgstr "Du har allerede abonneret på udsendelsen"
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
|
||||||
msgid "_Mark All Episodes as Played"
|
#: podcasts-gtk/src/headerbar.rs:125
|
||||||
msgstr "_Markér alle episoder som afspillet"
|
msgid "Invalid URL"
|
||||||
|
msgstr "Ugyldig URL"
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:11
|
|
||||||
msgid "_Website"
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgstr "_Websted"
|
msgid "New"
|
||||||
|
msgstr "Nyt"
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:15
|
|
||||||
msgid "_Unsubscribe"
|
#: podcasts-gtk/src/stacks/content.rs:55
|
||||||
msgstr "_Afmeld abonnement"
|
msgid "Shows"
|
||||||
|
msgstr "Udsendelser"
|
||||||
#: podcasts-gtk/resources/gtk/show_menu.ui:51
|
|
||||||
msgid "Open Website"
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgstr "Åbn websted"
|
msgid "Select the file from which to you want to import shows."
|
||||||
|
msgstr "Vælg den fil du vil importere udsendelser fra."
|
||||||
#: podcasts-gtk/resources/gtk/show_menu.ui:64
|
|
||||||
msgid "Mark All as Played"
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgstr "Markér alle som afspillet"
|
msgid "_Import"
|
||||||
|
msgstr "_Importér"
|
||||||
#: podcasts-gtk/resources/gtk/show_menu.ui:89
|
|
||||||
msgid "Unsubscribe"
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgstr "Afmelder abonnement"
|
msgid "OPML file"
|
||||||
|
msgstr "OPML-fil"
|
||||||
#: podcasts-gtk/src/app.rs:369
|
|
||||||
msgid "Fetching new episodes"
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgstr "Henter nye episoder"
|
msgid "Failed to parse the imported file"
|
||||||
|
msgstr "Kunne ikke fortolke den importerede fil"
|
||||||
#: podcasts-gtk/src/headerbar.rs:117
|
|
||||||
msgid "You are already subscribed to this show"
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgstr "Du har allerede abonneret på udsendelsen"
|
msgid "Selected file could not be accessed."
|
||||||
|
msgstr "Kunne ikke tilgå den valgte fil."
|
||||||
#: podcasts-gtk/src/headerbar.rs:125
|
|
||||||
msgid "Invalid URL"
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
msgstr "Ugyldig URL"
|
msgid "Export shows to…"
|
||||||
|
msgstr "Eksportér udsendelser til …"
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgstr "Sekunder"
|
msgid "_Export"
|
||||||
|
msgstr "_Eksportér"
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgstr "Minutter"
|
msgid "_Cancel"
|
||||||
|
msgstr "_Annuller"
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgstr "Timer"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
|
msgstr "Abonneringer for GNOME Podcasts"
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgstr "Dage"
|
msgid "Failed to export podcasts"
|
||||||
|
msgstr "Kunne ikke eksportere podcasts"
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:51
|
||||||
msgstr "Uger"
|
msgid "Podcast Client for the GNOME Desktop."
|
||||||
|
msgstr "Podcast-klient til GNOME-skrivebordet."
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
|
||||||
msgid "New"
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:58
|
||||||
msgstr "Nyt"
|
msgid "Learn more about GNOME Podcasts"
|
||||||
|
msgstr "Lær mere om GNOME Podcasts"
|
||||||
#: podcasts-gtk/src/stacks/content.rs:55
|
|
||||||
msgid "Shows"
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:63
|
||||||
msgstr "Udsendelser"
|
msgid "translator-credits"
|
||||||
|
msgstr "scootergrisen"
|
||||||
#: podcasts-gtk/src/utils.rs:377
|
|
||||||
msgid "Select the file from which to you want to import shows."
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgstr "Vælg den fil du vil importere udsendelser fra."
|
msgid "{} min"
|
||||||
|
msgstr "{} min"
|
||||||
#: podcasts-gtk/src/utils.rs:380
|
|
||||||
msgid "_Import"
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
msgstr "_Importér"
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
|
msgid "The media player was unable to execute an action."
|
||||||
#: podcasts-gtk/src/utils.rs:389 podcasts-gtk/src/utils.rs:435
|
msgstr "Medieafspilleren kunne ikke udføre en handling."
|
||||||
msgid "OPML file"
|
|
||||||
msgstr "OPML-fil"
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
|
msgid "Marked all episodes as listened"
|
||||||
#: podcasts-gtk/src/utils.rs:406
|
msgstr "Markerede alle episoder som hørt"
|
||||||
msgid "Failed to parse the imported file"
|
|
||||||
msgstr "Kunne ikke fortolke den importerede fil"
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
|
msgid "Unsubscribed from {}"
|
||||||
#: podcasts-gtk/src/utils.rs:411 podcasts-gtk/src/utils.rs:453
|
msgstr "Afmeldte abonnement fra {}"
|
||||||
msgid "Selected file could not be accessed."
|
|
||||||
msgstr "Kunne ikke tilgå den valgte fil."
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:423
|
|
||||||
msgid "Export shows to…"
|
|
||||||
msgstr "Eksportér udsendelser til …"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:426
|
|
||||||
msgid "_Export"
|
|
||||||
msgstr "_Eksportér"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:427
|
|
||||||
msgid "_Cancel"
|
|
||||||
msgstr "_Annuller"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:447
|
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
|
||||||
msgstr "Abonneringer for GNOME Podcasts"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:448
|
|
||||||
msgid "Failed to export podcasts"
|
|
||||||
msgstr "Kunne ikke eksportere podcasts"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:51
|
|
||||||
msgid "Podcast Client for the GNOME Desktop."
|
|
||||||
msgstr "Podcast-klient til GNOME-skrivebordet."
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:58
|
|
||||||
msgid "Learn more about GNOME Podcasts"
|
|
||||||
msgstr "Lær mere om GNOME Podcasts"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:63
|
|
||||||
msgid "translator-credits"
|
|
||||||
msgstr "scootergrisen"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:149
|
|
||||||
msgid "{} min"
|
|
||||||
msgstr "{} min"
|
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
|
||||||
msgid "The media player was unable to execute an action."
|
|
||||||
msgstr "Medieafspilleren kunne ikke udføre en handling."
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:169
|
|
||||||
msgid "Marked all episodes as listened"
|
|
||||||
msgstr "Markerede alle episoder som hørt"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:174
|
|
||||||
msgid "Unsubscribed from {}"
|
|
||||||
msgstr "Afmeldte abonnement fra {}"
|
|
||||||
|
|||||||
+78
-89
@@ -4,14 +4,15 @@
|
|||||||
# Automatically generated, 2018.
|
# Automatically generated, 2018.
|
||||||
# Daniel Garcia Moreno <danigm@wadobo.com>, 2018.
|
# Daniel Garcia Moreno <danigm@wadobo.com>, 2018.
|
||||||
# Rodrigo <rodhos92@gmail.com>, 2018.
|
# Rodrigo <rodhos92@gmail.com>, 2018.
|
||||||
|
# Rodrigo Lledó <rodhos92@gmail.com>, 2019.
|
||||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2018-2019.
|
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2018-2019.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-podcasts\n"
|
"Project-Id-Version: gnome-podcasts\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-02 15:17+0000\n"
|
"POT-Creation-Date: 2019-06-15 10:55+0000\n"
|
||||||
"PO-Revision-Date: 2019-02-19 15:51+0100\n"
|
"PO-Revision-Date: 2019-06-19 12:19+0200\n"
|
||||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||||
"Language-Team: es <gnome-es-list@gnome.org>\n"
|
"Language-Team: es <gnome-es-list@gnome.org>\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@@ -19,7 +20,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Generator: Gtranslator 3.31.90\n"
|
"X-Generator: Gtranslator 3.32.0\n"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
@@ -74,7 +75,7 @@ msgstr "Cuántos periodos de tiempo hay que esperar entre limpiezas automáticas
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:455
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcasts"
|
msgstr "Podcasts"
|
||||||
@@ -84,11 +85,6 @@ msgstr "Podcasts"
|
|||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Escuche sus podcasts favoritos, directamente desde su escritorio."
|
msgstr "Escuche sus podcasts favoritos, directamente desde su escritorio."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
|
||||||
msgid "@icon@"
|
|
||||||
msgstr "@icon@"
|
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "Podcast;RSS;"
|
msgid "Podcast;RSS;"
|
||||||
@@ -122,19 +118,24 @@ msgstr "Añadir un programa nuevo a través de canal URL"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Importar programas de otro dispositivo"
|
msgstr "Importar programas de otro dispositivo"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
#| msgid "You've already listened to this episode."
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Ya ha escuchado este episodio."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Calculando tamaño del episodio…"
|
msgstr "Calculando tamaño del episodio…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Reproducir este episodio"
|
msgstr "Reproducir este episodio"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "Cancelar el proceso de descarga"
|
msgstr "Cancelar el proceso de descarga"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Descargar este episodio"
|
msgstr "Descargar este episodio"
|
||||||
|
|
||||||
@@ -151,19 +152,15 @@ msgid "_Export Shows"
|
|||||||
msgstr "_Exportar programas"
|
msgstr "_Exportar programas"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "_Preferencias"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "Atajos de _teclado"
|
msgstr "Atajos de _teclado"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "_Acerca de Podcasts"
|
msgstr "_Acerca de Podcasts"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:189
|
#: podcasts-gtk/resources/gtk/headerbar.ui:177
|
||||||
msgid "Add a new feed"
|
msgid "Add a new feed"
|
||||||
msgstr "Añadir un canal nuevo"
|
msgstr "Añadir un canal nuevo"
|
||||||
|
|
||||||
@@ -175,15 +172,11 @@ msgstr "Introduzca la dirección del canal que añadir"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Añadir"
|
msgstr "Añadir"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:133
|
#: podcasts-gtk/resources/gtk/headerbar.ui:157
|
||||||
msgid "You are already subscribed to that feed!"
|
|
||||||
msgstr "¡Ya está suscrito a este canal!"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:169
|
|
||||||
msgid "Show Title"
|
msgid "Show Title"
|
||||||
msgstr "Título del programa"
|
msgstr "Título del programa"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:210
|
#: podcasts-gtk/resources/gtk/headerbar.ui:198
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Atrás"
|
msgstr "Atrás"
|
||||||
|
|
||||||
@@ -198,11 +191,6 @@ msgstr "Comprobar si hay episodios nuevos"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Preferencias"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Salir de la aplicación"
|
msgstr "Salir de la aplicación"
|
||||||
|
|
||||||
@@ -279,27 +267,6 @@ msgstr "velocidad 1.25"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Velocidad normal"
|
msgstr "Velocidad normal"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Preferencias"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Aspecto"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Tema oscuro"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Eliminar episodios reproducidos"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Después"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "_Marcar todos los episodios como reproducidos"
|
msgstr "_Marcar todos los episodios como reproducidos"
|
||||||
@@ -324,38 +291,18 @@ msgstr "Marcar todo como reproducido"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Cancelar suscripción"
|
msgstr "Cancelar suscripción"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:369
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Obteniendo nuevos episodios"
|
msgstr "Obteniendo nuevos episodios"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:117
|
#: podcasts-gtk/src/headerbar.rs:127
|
||||||
msgid "You are already subscribed to this show"
|
msgid "You are already subscribed to this show"
|
||||||
msgstr "Ya está suscrito a este programa"
|
msgstr "Ya está suscrito a este programa"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:125
|
#: podcasts-gtk/src/headerbar.rs:145
|
||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "URL no válido"
|
msgstr "URL no válido"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "Segundos"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "Minutos"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "Horas"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "Días"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "Semanas"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Nuevo"
|
msgstr "Nuevo"
|
||||||
@@ -364,44 +311,43 @@ msgstr "Nuevo"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Programas"
|
msgstr "Programas"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:377
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Selecciona el fichero desde el que quiere importar programas."
|
msgstr "Selecciona el fichero desde el que quiere importar programas."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:380
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "_Importar"
|
msgstr "_Importar"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:389 podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "fichero OPML"
|
msgstr "fichero OPML"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:406
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "Fallo al analizar el fichero importado"
|
msgstr "Fallo al analizar el fichero importado"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:411 podcasts-gtk/src/utils.rs:453
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "No se ha podido acceder al archivo seleccionado."
|
msgstr "No se ha podido acceder al archivo seleccionado."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:423
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
#| msgid "Export shows to..."
|
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "Exportar programas a…"
|
msgstr "Exportar programas a…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:426
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "_Exportar"
|
msgstr "_Exportar"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:427
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "_Cancelar"
|
msgstr "_Cancelar"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "Suscripciones a podcasts de GNOME"
|
msgstr "Suscripciones a podcasts de GNOME"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:448
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "Falló al exportar podcasts"
|
msgstr "Falló al exportar podcasts"
|
||||||
|
|
||||||
@@ -419,23 +365,66 @@ msgstr ""
|
|||||||
"Daniel Mustieles <daniel.mustieles@gmail.com>, 2018-2019\n"
|
"Daniel Mustieles <daniel.mustieles@gmail.com>, 2018-2019\n"
|
||||||
"Daniel García Moreno <danigm@wadobo.com>"
|
"Daniel García Moreno <danigm@wadobo.com>"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:149
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} min"
|
msgstr "{} min"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "El reproductor no ha podido reproducir una acción."
|
msgstr "El reproductor no ha podido reproducir una acción."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:169
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Marcar todos los episodios como escuchados"
|
msgstr "Marcar todos los episodios como escuchados"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:174
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "Suscripción cancelada para {}"
|
msgstr "Suscripción cancelada para {}"
|
||||||
|
|
||||||
|
#~ msgid "You are already subscribed to that feed!"
|
||||||
|
#~ msgstr "¡Ya está suscrito a este canal!"
|
||||||
|
|
||||||
|
#~ msgid "@icon@"
|
||||||
|
#~ msgstr "@icon@"
|
||||||
|
|
||||||
|
#~ msgid "_Preferences"
|
||||||
|
#~ msgstr "_Preferencias"
|
||||||
|
|
||||||
|
#~ msgctxt "shortcut window"
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Preferencias"
|
||||||
|
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Preferencias"
|
||||||
|
|
||||||
|
#~ msgid "Appearance"
|
||||||
|
#~ msgstr "Aspecto"
|
||||||
|
|
||||||
|
#~ msgid "Dark Theme"
|
||||||
|
#~ msgstr "Tema oscuro"
|
||||||
|
|
||||||
|
#~ msgid "Delete played episodes"
|
||||||
|
#~ msgstr "Eliminar episodios reproducidos"
|
||||||
|
|
||||||
|
#~ msgid "After"
|
||||||
|
#~ msgstr "Después"
|
||||||
|
|
||||||
|
#~ msgid "Seconds"
|
||||||
|
#~ msgstr "Segundos"
|
||||||
|
|
||||||
|
#~ msgid "Minutes"
|
||||||
|
#~ msgstr "Minutos"
|
||||||
|
|
||||||
|
#~ msgid "Hours"
|
||||||
|
#~ msgstr "Horas"
|
||||||
|
|
||||||
|
#~ msgid "Days"
|
||||||
|
#~ msgstr "Días"
|
||||||
|
|
||||||
|
#~ msgid "Weeks"
|
||||||
|
#~ msgstr "Semanas"
|
||||||
|
|
||||||
#~ msgid "_About"
|
#~ msgid "_About"
|
||||||
#~ msgstr "_Acerca de"
|
#~ msgstr "_Acerca de"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,362 @@
|
|||||||
|
# Basque translation for podcasts.
|
||||||
|
# Copyright (C) 2019 podcasts's COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the podcasts package.
|
||||||
|
# Asier Sarasua Garmendia <asier.sarasua@gmail.com>, 2019.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr "Project-Id-Version: podcasts master\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
|
"POT-Creation-Date: 2019-10-10 13:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2019-10-18 10:00+0100\n"
|
||||||
|
"Last-Translator: Asier Sarasua Garmendia <asier.sarasua@gmail.com>\n"
|
||||||
|
"Language-Team: Basque <librezale@librezale.eus>\n"
|
||||||
|
"Language: eu\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
|
msgid "Top position of the last open main window"
|
||||||
|
msgstr "Irekitako azken leiho nagusiaren goiko posizioa"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:19
|
||||||
|
msgid "Left position of the last open main window"
|
||||||
|
msgstr "Irekitako azken leiho nagusiaren ezkerreko posizioa"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:23
|
||||||
|
msgid "Height of the last open main window"
|
||||||
|
msgstr "Irekitako azken leiho nagusiaren altuera"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:27
|
||||||
|
msgid "Width of the last open main window"
|
||||||
|
msgstr "Irekitako azken leiho nagusiaren zabalera"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:31
|
||||||
|
msgid "Maximized state of the last open main window"
|
||||||
|
msgstr "Irekitako azken leiho nagusiaren egoera maximizatua"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:36
|
||||||
|
msgid "Enable or disable dark theme"
|
||||||
|
msgstr "Gaitu edo desgaitu gai iluna"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:41
|
||||||
|
msgid "Whether to periodically refresh content"
|
||||||
|
msgstr "Edukia aldizka freskatuko den ala ez"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:46
|
||||||
|
msgid "How many periods of time to wait between automatic refreshes"
|
||||||
|
msgstr "Zenbat denbora-tarte itxarongo den freskatze automatikoen artean"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:50
|
||||||
|
msgid "What period of time to wait between automatic refreshes"
|
||||||
|
msgstr "Zenbat denbora itxarongo den freskatze automatikoen artean"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:54
|
||||||
|
msgid "Whether to refresh content after startup"
|
||||||
|
msgstr "Abioaren ondoren edukia freskatuko den ala ez"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:60
|
||||||
|
msgid "How many periods of time to wait between automatic cleanups"
|
||||||
|
msgstr "Zenbat denbora-tarte itxarongo den garbitze automatikoen artean"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:64
|
||||||
|
msgid "What period of time to wait between automatic cleanups"
|
||||||
|
msgstr "Zenbat denbora itxarongo den garbitze automatikoen artean"
|
||||||
|
|
||||||
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
|
#: podcasts-gtk/src/app.rs:327 podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
|
msgid "Podcasts"
|
||||||
|
msgstr "Podcast-ak"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:4
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:10
|
||||||
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
|
msgstr "Entzun zure podcast gogokoenak zuzenean zure mahaigainetik."
|
||||||
|
|
||||||
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
|
msgid "Podcast;RSS;"
|
||||||
|
msgstr "Podcast;RSS;"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:8
|
||||||
|
msgid "Podcast app for GNOME"
|
||||||
|
msgstr "Podcast-en aplikazioa GNOMErako"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:77
|
||||||
|
msgid "Jordan Petridis"
|
||||||
|
msgstr "Jordan Petridis"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:46
|
||||||
|
msgid "This show does not have episodes yet"
|
||||||
|
msgstr "Saio honek ez du pasarterik oraindik"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:62
|
||||||
|
msgid "If you think this is an error, please consider writing a bug report."
|
||||||
|
msgstr "Errorea dela uste baduzu, idatzi akatsaren jakinarazpen bat."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:106
|
||||||
|
msgid "Get some shows"
|
||||||
|
msgstr "Eskuratu zenbait saio"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:143
|
||||||
|
msgid "Add new shows via feed URL"
|
||||||
|
msgstr "Gehitu saio berriak jarioen URL baten bidez"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/empty_view.ui:172
|
||||||
|
msgid "Import shows from another device"
|
||||||
|
msgstr "Inportatu saioak beste gailu batetik"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Dagoeneko entzun duzu pasarte hau"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
|
msgid "Calculating episode size…"
|
||||||
|
msgstr "Pasartearen tamaina kalkulatzen…"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
|
msgid "Play this episode"
|
||||||
|
msgstr "Erreproduzitu pasarte hau"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
|
msgid "Cancel the download process"
|
||||||
|
msgstr "Utzi deskarga-prozesua"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
|
msgid "Download this episode"
|
||||||
|
msgstr "Deskargatu pasarte hau"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:7
|
||||||
|
msgid "_Check for New Episodes"
|
||||||
|
msgstr "_Begiratu pasarte berriak dauden"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:12
|
||||||
|
msgid "_Import Shows"
|
||||||
|
msgstr "_Inportatu saioak"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:16
|
||||||
|
msgid "_Export Shows"
|
||||||
|
msgstr "_Esportatu saioak"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
|
msgid "_Keyboard Shortcuts"
|
||||||
|
msgstr "Las_ter-teklak"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
|
msgid "_About Podcasts"
|
||||||
|
msgstr "Podcasts aplikazioari _buruz"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:177
|
||||||
|
msgid "Add a new feed"
|
||||||
|
msgstr "Gehitu jario berria"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:53
|
||||||
|
msgid "Enter feed address to add"
|
||||||
|
msgstr "Sartu gehituko den jarioaren helbidea"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:89
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Gehitu"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:157
|
||||||
|
msgid "Show Title"
|
||||||
|
msgstr "Erakutsi titulua"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/headerbar.ui:198
|
||||||
|
msgid "Back"
|
||||||
|
msgstr "Atzera"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:12
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Orokorra"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:18
|
||||||
|
msgctxt "shortcut window"
|
||||||
|
msgid "Check for new episodes"
|
||||||
|
msgstr "Begiratu pasarte berriak dauden"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
|
msgctxt "shortcut window"
|
||||||
|
msgid "Quit the application"
|
||||||
|
msgstr "Irten aplikaziotik"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/home_view.ui:56
|
||||||
|
msgid "Today"
|
||||||
|
msgstr "Gaur"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/home_view.ui:112
|
||||||
|
msgid "Yesterday"
|
||||||
|
msgstr "Atzo"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/home_view.ui:168
|
||||||
|
msgid "This Week"
|
||||||
|
msgstr "Aste honetan"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/home_view.ui:224
|
||||||
|
msgid "This Month"
|
||||||
|
msgstr "Hilabete honetan"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/home_view.ui:281
|
||||||
|
msgid "Older"
|
||||||
|
msgstr "Zaharragoa"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/inapp_notif.ui:101
|
||||||
|
msgid "An in-app action notification"
|
||||||
|
msgstr "Aplikazioaren jakinarazpen bat"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/inapp_notif.ui:112
|
||||||
|
msgid "Undo"
|
||||||
|
msgstr "Desegin"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:72
|
||||||
|
msgid "Rewind 10 seconds"
|
||||||
|
msgstr "Joan 10 segundo atzera"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:87
|
||||||
|
msgid "Play"
|
||||||
|
msgstr "Erreproduzitu"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:103
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "Pausatu"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:119
|
||||||
|
msgid "Fast forward 10 seconds"
|
||||||
|
msgstr "Joan 10 segundo aurrera"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:285
|
||||||
|
msgid "Change the playback speed"
|
||||||
|
msgstr "Aldatu erreprodukzioaren abiadura"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:300
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:380
|
||||||
|
msgid "1.00×"
|
||||||
|
msgstr "1.00×"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:344
|
||||||
|
msgid "1.50×"
|
||||||
|
msgstr "1.50×"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:348
|
||||||
|
msgid "1.5 speed rate"
|
||||||
|
msgstr "1.5 abiadura-tasa"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:362
|
||||||
|
msgid "1.25×"
|
||||||
|
msgstr "1.25×"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:366
|
||||||
|
msgid "1.25 speed rate"
|
||||||
|
msgstr "1.25 abiadura-tasa"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/player_toolbar.ui:384
|
||||||
|
msgid "Normal speed"
|
||||||
|
msgstr "Abiadura normala"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
|
msgid "_Mark All Episodes as Played"
|
||||||
|
msgstr "_Markatu pasarte guztiak erreproduzitu gisa"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:11
|
||||||
|
msgid "_Website"
|
||||||
|
msgstr "_Webgunea"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:15
|
||||||
|
msgid "_Unsubscribe"
|
||||||
|
msgstr "Harpidetza _kendu"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/show_menu.ui:51
|
||||||
|
msgid "Open Website"
|
||||||
|
msgstr "Ireki webgunea"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/show_menu.ui:64
|
||||||
|
msgid "Mark All as Played"
|
||||||
|
msgstr "Markatu dena erreproduzitu gisa"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/show_menu.ui:89
|
||||||
|
msgid "Unsubscribe"
|
||||||
|
msgstr "Harpidetza kendu"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/app.rs:265
|
||||||
|
msgid "Fetching new episodes"
|
||||||
|
msgstr "Pasarte berriak eskuratzen"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
|
msgid "New"
|
||||||
|
msgstr "Berria"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/stacks/content.rs:55
|
||||||
|
msgid "Shows"
|
||||||
|
msgstr "Saioak"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:396
|
||||||
|
msgid "Select the file from which to you want to import shows."
|
||||||
|
msgstr "Hautatu saioak inportatzeko erabiliko duzun fitxategia."
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:399
|
||||||
|
msgid "_Import"
|
||||||
|
msgstr "_Inportatu"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:408 podcasts-gtk/src/utils.rs:456
|
||||||
|
msgid "OPML file"
|
||||||
|
msgstr "OPML fitxategia"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:425
|
||||||
|
msgid "Failed to parse the imported file"
|
||||||
|
msgstr "Huts egin du inportatuko fitxategia analizatzeak"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:430 podcasts-gtk/src/utils.rs:474
|
||||||
|
msgid "Selected file could not be accessed."
|
||||||
|
msgstr "Hautatutako fitxategia ezin da eskuratu."
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:444
|
||||||
|
msgid "Export shows to…"
|
||||||
|
msgstr "Esportatu saioak hona…"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:447
|
||||||
|
msgid "_Export"
|
||||||
|
msgstr "_Esportatu"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
|
msgid "_Cancel"
|
||||||
|
msgstr "_Utzi"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:468
|
||||||
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
|
msgstr "GNOME Podcasts harpidetzak"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
|
msgid "Failed to export podcasts"
|
||||||
|
msgstr "Huts egin du podcast-ak esportatzeak"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:51
|
||||||
|
msgid "Podcast Client for the GNOME Desktop."
|
||||||
|
msgstr "Podcast-en bezeroa GNOME mahaigainerako."
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:58
|
||||||
|
msgid "Learn more about GNOME Podcasts"
|
||||||
|
msgstr "Ikasi gehiago GNOME Podcasts aplikazioari buruz"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:63
|
||||||
|
msgid "translator-credits"
|
||||||
|
msgstr "Asier Sarasua Garmendia <asier.sarasua@gmail.com>"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
|
msgid "{} min"
|
||||||
|
msgstr "{} min"
|
||||||
|
|
||||||
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
|
#: podcasts-gtk/src/widgets/player.rs:535
|
||||||
|
msgid "The media player was unable to execute an action."
|
||||||
|
msgstr "Multimedia-erreproduzigailuak ezin izan da ekintza bat exekutatu."
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
|
msgid "Marked all episodes as listened"
|
||||||
|
msgstr "Markatu pasarte guztiak entzundako gisa"
|
||||||
|
|
||||||
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
|
msgid "Unsubscribed from {}"
|
||||||
|
msgstr "Kendu {} podcast-eko harpidetza"
|
||||||
+69
-80
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts master\n"
|
"Project-Id-Version: podcasts master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-02 15:17+0000\n"
|
"POT-Creation-Date: 2019-05-18 12:55+0000\n"
|
||||||
"PO-Revision-Date: 2019-03-02 10:50+0200\n"
|
"PO-Revision-Date: 2019-06-01 20:20+0300\n"
|
||||||
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
|
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
|
||||||
"Language-Team: Finnish <lokalisointi-lista@googlegroups.com>\n"
|
"Language-Team: Finnish <lokalisointi-lista@googlegroups.com>\n"
|
||||||
"Language: fi\n"
|
"Language: fi\n"
|
||||||
@@ -20,11 +20,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
msgstr ""
|
msgstr "Viimeksi avoinna olleen pääikkunan yläsijainti"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:19
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:19
|
||||||
msgid "Left position of the last open main window"
|
msgid "Left position of the last open main window"
|
||||||
msgstr ""
|
msgstr "Viimeksi avoinna olleen pääikkunan vasen sijainti"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:23
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:23
|
||||||
msgid "Height of the last open main window"
|
msgid "Height of the last open main window"
|
||||||
@@ -69,7 +69,7 @@ msgstr ""
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:455
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcastit"
|
msgstr "Podcastit"
|
||||||
@@ -79,11 +79,6 @@ msgstr "Podcastit"
|
|||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Kuuntele suosikkipodcastejasi suoraan työpöydältäsi."
|
msgstr "Kuuntele suosikkipodcastejasi suoraan työpöydältäsi."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
|
||||||
msgid "@icon@"
|
|
||||||
msgstr "@icon@"
|
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "Podcast;RSS;"
|
msgid "Podcast;RSS;"
|
||||||
@@ -117,19 +112,23 @@ msgstr "Lisää uusia ohjelmia syötteen osoitteen avulla"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Tuo ohjelmia toiselta laitteelta"
|
msgstr "Tuo ohjelmia toiselta laitteelta"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Olet jo kuunnellut tämän jakson."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Lasketaan jakson kokoa…"
|
msgstr "Lasketaan jakson kokoa…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Toista tämä jakso"
|
msgstr "Toista tämä jakso"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "Peru lataaminen"
|
msgstr "Peru lataaminen"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Lataa tämä jakso"
|
msgstr "Lataa tämä jakso"
|
||||||
|
|
||||||
@@ -146,14 +145,10 @@ msgid "_Export Shows"
|
|||||||
msgstr "_Vie jaksoja"
|
msgstr "_Vie jaksoja"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "_Asetukset"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "_Pikanäppäimet"
|
msgstr "_Pikanäppäimet"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "_Tietoja - Podcastit"
|
msgstr "_Tietoja - Podcastit"
|
||||||
|
|
||||||
@@ -193,11 +188,6 @@ msgstr "Tarkista uudet jaksot"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Asetukset"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Lopeta sovellus"
|
msgstr "Lopeta sovellus"
|
||||||
|
|
||||||
@@ -274,27 +264,6 @@ msgstr "1,25-kertainen nopeus"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Tavallinen nopeus"
|
msgstr "Tavallinen nopeus"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Asetukset"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Ulkoasu"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Tumma teema"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Poista toistetut jaksot"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Viive"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "_Merkitse kaikki jaksot toistetuiksi"
|
msgstr "_Merkitse kaikki jaksot toistetuiksi"
|
||||||
@@ -319,7 +288,7 @@ msgstr "Merkitse kaikki toistetuiksi"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Lopeta tilaus"
|
msgstr "Lopeta tilaus"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:369
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Noudetaan uusia jaksoja"
|
msgstr "Noudetaan uusia jaksoja"
|
||||||
|
|
||||||
@@ -331,26 +300,6 @@ msgstr "Olet jo tilannut tämän ohjelman"
|
|||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "Virheellinen osoite"
|
msgstr "Virheellinen osoite"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "sekuntia"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "minuuttia"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "tuntia"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "päivää"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "viikkoa"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Uudet"
|
msgstr "Uudet"
|
||||||
@@ -359,43 +308,43 @@ msgstr "Uudet"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Ohjelmat"
|
msgstr "Ohjelmat"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:377
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Valitse tiedosto, josta haluat tuoda ohjelmia."
|
msgstr "Valitse tiedosto, josta haluat tuoda ohjelmia."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:380
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "_Tuo"
|
msgstr "_Tuo"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:389 podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "OPML-tiedosto"
|
msgstr "OPML-tiedosto"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:406
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "Tuotua tiedostoa ei voitu jäsentää"
|
msgstr "Tuotua tiedostoa ei voitu jäsentää"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:411 podcasts-gtk/src/utils.rs:453
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "Valittua tiedostoa ei voitu käyttää."
|
msgstr "Valittua tiedostoa ei voitu käyttää."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:423
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "Vie jaksot…"
|
msgstr "Vie jaksot…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:426
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "_Vie"
|
msgstr "_Vie"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:427
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "_Peru"
|
msgstr "_Peru"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "Gnomen podcastsovelluksen tilaukset"
|
msgstr "Gnomen podcastsovelluksen tilaukset"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:448
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "Podcastien vienti epäonnistui"
|
msgstr "Podcastien vienti epäonnistui"
|
||||||
|
|
||||||
@@ -411,23 +360,63 @@ msgstr "Lisätietoja Gnomen podcast-sovelluksesta"
|
|||||||
msgid "translator-credits"
|
msgid "translator-credits"
|
||||||
msgstr "Jiri Grönroos"
|
msgstr "Jiri Grönroos"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:149
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} min"
|
msgstr "{} min"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "Mediasoitin ei kyennyt suorittamaan toimintoa."
|
msgstr "Mediasoitin ei kyennyt suorittamaan toimintoa."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:169
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Merkitse kaikki jaksot toistetuiksi"
|
msgstr "Merkitse kaikki jaksot toistetuiksi"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:174
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "Lopeta syötteen {} tilaus"
|
msgstr "Lopeta syötteen {} tilaus"
|
||||||
|
|
||||||
|
#~ msgid "@icon@"
|
||||||
|
#~ msgstr "@icon@"
|
||||||
|
|
||||||
|
#~ msgid "_Preferences"
|
||||||
|
#~ msgstr "_Asetukset"
|
||||||
|
|
||||||
|
#~ msgctxt "shortcut window"
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Asetukset"
|
||||||
|
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Asetukset"
|
||||||
|
|
||||||
|
#~ msgid "Appearance"
|
||||||
|
#~ msgstr "Ulkoasu"
|
||||||
|
|
||||||
|
#~ msgid "Dark Theme"
|
||||||
|
#~ msgstr "Tumma teema"
|
||||||
|
|
||||||
|
#~ msgid "Delete played episodes"
|
||||||
|
#~ msgstr "Poista toistetut jaksot"
|
||||||
|
|
||||||
|
#~ msgid "After"
|
||||||
|
#~ msgstr "Viive"
|
||||||
|
|
||||||
|
#~ msgid "Seconds"
|
||||||
|
#~ msgstr "sekuntia"
|
||||||
|
|
||||||
|
#~ msgid "Minutes"
|
||||||
|
#~ msgstr "minuuttia"
|
||||||
|
|
||||||
|
#~ msgid "Hours"
|
||||||
|
#~ msgstr "tuntia"
|
||||||
|
|
||||||
|
#~ msgid "Days"
|
||||||
|
#~ msgstr "päivää"
|
||||||
|
|
||||||
|
#~ msgid "Weeks"
|
||||||
|
#~ msgstr "viikkoa"
|
||||||
|
|
||||||
#~ msgid "_About"
|
#~ msgid "_About"
|
||||||
#~ msgstr "_Tietoja"
|
#~ msgstr "_Tietoja"
|
||||||
|
|
||||||
|
|||||||
+74
-84
@@ -7,9 +7,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts master\n"
|
"Project-Id-Version: podcasts master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-03-25 09:23+0000\n"
|
"POT-Creation-Date: 2019-06-15 10:55+0000\n"
|
||||||
"PO-Revision-Date: 2019-03-27 16:19+0100\n"
|
"PO-Revision-Date: 2019-06-22 22:30+0200\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
|
||||||
"Language-Team: Croatian <hr@li.org>\n"
|
"Language-Team: Croatian <hr@li.org>\n"
|
||||||
"Language: hr\n"
|
"Language: hr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -17,7 +17,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
"X-Generator: Poedit 2.0.6\n"
|
"X-Generator: Poedit 2.2.1\n"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
@@ -73,7 +73,7 @@ msgstr "Koliko vremensko razdoblje treba pričekati između automatskih čišće
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:110 podcasts-gtk/src/app.rs:446
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcasti"
|
msgstr "Podcasti"
|
||||||
@@ -116,19 +116,23 @@ msgstr "Dodaj novu emisiju putem kanala ili URL-a"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Uvezi emisije iz drugog uređaja"
|
msgstr "Uvezi emisije iz drugog uređaja"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Već ste poslušali ovu epizodu."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Izračunavanje veličine emisjie…"
|
msgstr "Izračunavanje veličine emisjie…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Slušaj ovu epizodu"
|
msgstr "Slušaj ovu epizodu"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "Prekini preuzimanja"
|
msgstr "Prekini preuzimanja"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Preuzmi ovu epizodu"
|
msgstr "Preuzmi ovu epizodu"
|
||||||
|
|
||||||
@@ -145,19 +149,15 @@ msgid "_Export Shows"
|
|||||||
msgstr "_Izvezi emisije"
|
msgstr "_Izvezi emisije"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "_Osobitosti"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "_Prečaci tipkovnice"
|
msgstr "_Prečaci tipkovnice"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "_O Podcasti"
|
msgstr "_O Podcasti"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:189
|
#: podcasts-gtk/resources/gtk/headerbar.ui:177
|
||||||
msgid "Add a new feed"
|
msgid "Add a new feed"
|
||||||
msgstr "Dodaj novi kanal"
|
msgstr "Dodaj novi kanal"
|
||||||
|
|
||||||
@@ -169,15 +169,11 @@ msgstr "Upišite adresu kanala za dodavanje"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Dodaj"
|
msgstr "Dodaj"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:133
|
#: podcasts-gtk/resources/gtk/headerbar.ui:157
|
||||||
msgid "You are already subscribed to that feed!"
|
|
||||||
msgstr "Već ste pretplaćeni na ovaj kanal!"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:169
|
|
||||||
msgid "Show Title"
|
msgid "Show Title"
|
||||||
msgstr "Prikaži naslov"
|
msgstr "Prikaži naslov"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:210
|
#: podcasts-gtk/resources/gtk/headerbar.ui:198
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Natrag"
|
msgstr "Natrag"
|
||||||
|
|
||||||
@@ -192,11 +188,6 @@ msgstr "Provjeri ima li novih epizoda"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Osobitosti"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Zatvori aplikaciju"
|
msgstr "Zatvori aplikaciju"
|
||||||
|
|
||||||
@@ -273,27 +264,6 @@ msgstr "1.25 brže"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Normalna brzina"
|
msgstr "Normalna brzina"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Osobitosti"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Izgled"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Tamna tema"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Obriši poslušane epizode"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Poslije"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "_Označi se epizode kao odslušane"
|
msgstr "_Označi se epizode kao odslušane"
|
||||||
@@ -318,38 +288,18 @@ msgstr "Označi sve kao odslušano"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Ukini pretplatu"
|
msgstr "Ukini pretplatu"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:364
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Preuzimanje novi epizoda"
|
msgstr "Preuzimanje novi epizoda"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:117
|
#: podcasts-gtk/src/headerbar.rs:127
|
||||||
msgid "You are already subscribed to this show"
|
msgid "You are already subscribed to this show"
|
||||||
msgstr "Već ste pretplaćeni na ovu emisiju"
|
msgstr "Već ste pretplaćeni na ovu emisiju"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:125
|
#: podcasts-gtk/src/headerbar.rs:145
|
||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "Nevažeći URL"
|
msgstr "Nevažeći URL"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "Sekunda"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "Minuta"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "Sata"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "Dana"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "Tjedana"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Novo"
|
msgstr "Novo"
|
||||||
@@ -358,43 +308,43 @@ msgstr "Novo"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Emisije"
|
msgstr "Emisije"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:387
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Odaberite datoteku iz koje želite uvesti emisije."
|
msgstr "Odaberite datoteku iz koje želite uvesti emisije."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:390
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "_Uvoz"
|
msgstr "_Uvoz"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:399 podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "OPML datoteka"
|
msgstr "OPML datoteka"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:416
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "Neuspjela obrada uvezene datoteke"
|
msgstr "Neuspjela obrada uvezene datoteke"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:421 podcasts-gtk/src/utils.rs:465
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "Nemoguć pristup dabranoj datoteci."
|
msgstr "Nemoguć pristup dabranoj datoteci."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "_Izvezi emisije u…"
|
msgstr "_Izvezi emisije u…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:438
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "_Uvoz"
|
msgstr "_Uvoz"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:439
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "_Odustani"
|
msgstr "_Odustani"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:459
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "GNOME Podcast pretplate"
|
msgstr "GNOME Podcast pretplate"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:460
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "Neuspjeli uvoz podcasta"
|
msgstr "Neuspjeli uvoz podcasta"
|
||||||
|
|
||||||
@@ -412,23 +362,63 @@ msgstr ""
|
|||||||
"Launchpad Contributions:\n"
|
"Launchpad Contributions:\n"
|
||||||
" gogo https://launchpad.net/~trebelnik-stefina"
|
" gogo https://launchpad.net/~trebelnik-stefina"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:145
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} min"
|
msgstr "{} min"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "Medijski reproduktor nije uspio izvršiti radnju."
|
msgstr "Medijski reproduktor nije uspio izvršiti radnju."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:175
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Označi sve epizodae kao odslušane"
|
msgstr "Označi sve epizodae kao odslušane"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:180
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "Ukini pretplatu za {}"
|
msgstr "Ukini pretplatu za {}"
|
||||||
|
|
||||||
|
#~ msgid "_Preferences"
|
||||||
|
#~ msgstr "_Osobitosti"
|
||||||
|
|
||||||
|
#~ msgid "You are already subscribed to that feed!"
|
||||||
|
#~ msgstr "Već ste pretplaćeni na ovaj kanal!"
|
||||||
|
|
||||||
|
#~ msgctxt "shortcut window"
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Osobitosti"
|
||||||
|
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Osobitosti"
|
||||||
|
|
||||||
|
#~ msgid "Appearance"
|
||||||
|
#~ msgstr "Izgled"
|
||||||
|
|
||||||
|
#~ msgid "Dark Theme"
|
||||||
|
#~ msgstr "Tamna tema"
|
||||||
|
|
||||||
|
#~ msgid "Delete played episodes"
|
||||||
|
#~ msgstr "Obriši poslušane epizode"
|
||||||
|
|
||||||
|
#~ msgid "After"
|
||||||
|
#~ msgstr "Poslije"
|
||||||
|
|
||||||
|
#~ msgid "Seconds"
|
||||||
|
#~ msgstr "Sekunda"
|
||||||
|
|
||||||
|
#~ msgid "Minutes"
|
||||||
|
#~ msgstr "Minuta"
|
||||||
|
|
||||||
|
#~ msgid "Hours"
|
||||||
|
#~ msgstr "Sata"
|
||||||
|
|
||||||
|
#~ msgid "Days"
|
||||||
|
#~ msgstr "Dana"
|
||||||
|
|
||||||
|
#~ msgid "Weeks"
|
||||||
|
#~ msgstr "Tjedana"
|
||||||
|
|
||||||
#~ msgid "@icon@"
|
#~ msgid "@icon@"
|
||||||
#~ msgstr "@icon@"
|
#~ msgstr "@icon@"
|
||||||
|
|
||||||
|
|||||||
+31
-82
@@ -3,21 +3,21 @@
|
|||||||
# This file is distributed under the same license as the podcasts package.
|
# This file is distributed under the same license as the podcasts package.
|
||||||
#
|
#
|
||||||
# Meskó Balázs <mesko.balazs at fsf dot hu>, 2018.
|
# Meskó Balázs <mesko.balazs at fsf dot hu>, 2018.
|
||||||
# Balázs Úr <urbalazs at gmail dot com>, 2019.
|
# Balázs Úr <ur.balazs at fsf dot hu>, 2019.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts master\n"
|
"Project-Id-Version: podcasts master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-02 15:17+0000\n"
|
"POT-Creation-Date: 2019-05-18 12:55+0000\n"
|
||||||
"PO-Revision-Date: 2019-02-05 21:44+0100\n"
|
"PO-Revision-Date: 2019-06-03 22:27+0200\n"
|
||||||
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
|
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
|
||||||
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
|
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
|
||||||
"Language: hu\n"
|
"Language: hu\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Generator: Lokalize 1.2\n"
|
"X-Generator: Lokalize 18.12.3\n"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
@@ -70,7 +70,7 @@ msgstr "Milyen időközöket várjon az automatikus tisztítások között"
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:455
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcastok"
|
msgstr "Podcastok"
|
||||||
@@ -80,11 +80,6 @@ msgstr "Podcastok"
|
|||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Hallgassa kedvenc podcastjait, közvetlenül az asztalán."
|
msgstr "Hallgassa kedvenc podcastjait, közvetlenül az asztalán."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
|
||||||
msgid "@icon@"
|
|
||||||
msgstr "@icon@"
|
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "Podcast;RSS;"
|
msgid "Podcast;RSS;"
|
||||||
@@ -118,19 +113,24 @@ msgstr "Új műsorok hozzáadása csatorna URL-ből"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Műsorok importálása egy másik eszközről"
|
msgstr "Műsorok importálása egy másik eszközről"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
#| msgid "You are already subscribed to this show"
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Már meghallgatta ezt az epizódot."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Epizódméret kiszámítása…"
|
msgstr "Epizódméret kiszámítása…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Ezen epizód lejátszása"
|
msgstr "Ezen epizód lejátszása"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "A letöltési folyamat megszakítása"
|
msgstr "A letöltési folyamat megszakítása"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Ezen epizód letöltése"
|
msgstr "Ezen epizód letöltése"
|
||||||
|
|
||||||
@@ -147,14 +147,10 @@ msgid "_Export Shows"
|
|||||||
msgstr "Műsorok _exportálása"
|
msgstr "Műsorok _exportálása"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "_Beállítások"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "Gyorsbille_ntyűk"
|
msgstr "Gyorsbille_ntyűk"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "A Podcastok _névjegye"
|
msgstr "A Podcastok _névjegye"
|
||||||
|
|
||||||
@@ -194,11 +190,6 @@ msgstr "Új epizódok keresése"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Beállítások"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Kilépés az alkalmazásból"
|
msgstr "Kilépés az alkalmazásból"
|
||||||
|
|
||||||
@@ -275,27 +266,6 @@ msgstr "1,25-szörös sebesség"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Normál sebesség"
|
msgstr "Normál sebesség"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Beállítások"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Megjelenés"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Sötét téma"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Lejátszott epizódok törlése"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Később"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "Összes epizód meg_jelölése lejátszottként"
|
msgstr "Összes epizód meg_jelölése lejátszottként"
|
||||||
@@ -320,7 +290,7 @@ msgstr "Összes megjelölése lejátszottként"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Leiratkozás"
|
msgstr "Leiratkozás"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:369
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Új epizódok lekérése"
|
msgstr "Új epizódok lekérése"
|
||||||
|
|
||||||
@@ -332,26 +302,6 @@ msgstr "Már feliratkozott erre a műsorra"
|
|||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "Érvénytelen URL"
|
msgstr "Érvénytelen URL"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "Másodperc"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "Perc"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "Óra"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "Nap"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "Hét"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Új"
|
msgstr "Új"
|
||||||
@@ -360,43 +310,43 @@ msgstr "Új"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Műsorok"
|
msgstr "Műsorok"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:377
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Válasszon egy fájlt, amelyből műsorokat akar importálni."
|
msgstr "Válasszon egy fájlt, amelyből műsorokat akar importálni."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:380
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "_Importálás"
|
msgstr "_Importálás"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:389 podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "OPML fájl"
|
msgstr "OPML fájl"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:406
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "Az importált fájl feldolgozása meghiúsult"
|
msgstr "Az importált fájl feldolgozása meghiúsult"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:411 podcasts-gtk/src/utils.rs:453
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "A kiválasztott fájlok nem érhetőek el."
|
msgstr "A kiválasztott fájlok nem érhetőek el."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:423
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "Műsorok exportálása ide…"
|
msgstr "Műsorok exportálása ide…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:426
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "_Exportálás"
|
msgstr "_Exportálás"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:427
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "_Mégse"
|
msgstr "_Mégse"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "GNOME Podcastok feliratkozások"
|
msgstr "GNOME Podcastok feliratkozások"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:448
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "A podcastok exportálása meghiúsult"
|
msgstr "A podcastok exportálása meghiúsult"
|
||||||
|
|
||||||
@@ -412,20 +362,19 @@ msgstr "További tudnivalók a GNOME Podcastokról"
|
|||||||
msgid "translator-credits"
|
msgid "translator-credits"
|
||||||
msgstr "Meskó Balázs <mesko dot balazs at fsf dot hu>"
|
msgstr "Meskó Balázs <mesko dot balazs at fsf dot hu>"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:149
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} perc"
|
msgstr "{} perc"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "A médialejátszó nem tudott végrehajtani egy műveletet."
|
msgstr "A médialejátszó nem tudott végrehajtani egy műveletet."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:169
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Összes epizód megjelölve meghallgatottként"
|
msgstr "Összes epizód megjelölve meghallgatottként"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:174
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "Leiratkozott innen: {}"
|
msgstr "Leiratkozott innen: {}"
|
||||||
|
|
||||||
|
|||||||
+76
-88
@@ -7,15 +7,15 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts master\n"
|
"Project-Id-Version: podcasts master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-02 15:17+0000\n"
|
"POT-Creation-Date: 2019-06-15 10:55+0000\n"
|
||||||
"PO-Revision-Date: 2019-03-02 19:18+0700\n"
|
"PO-Revision-Date: 2019-07-11 15:21+0700\n"
|
||||||
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
|
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
|
||||||
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
|
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
|
||||||
"Language: id\n"
|
"Language: id\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.2.1\n"
|
"X-Generator: Poedit 2.2.3\n"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
@@ -68,7 +68,7 @@ msgstr "Berapa lama waktu untuk menunggu di antara pembersihan otomatis"
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:455
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcast"
|
msgstr "Podcast"
|
||||||
@@ -78,11 +78,6 @@ msgstr "Podcast"
|
|||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Dengarkan podcast favorit Anda, langsung dari destop Anda."
|
msgstr "Dengarkan podcast favorit Anda, langsung dari destop Anda."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
|
||||||
msgid "@icon@"
|
|
||||||
msgstr "@icon@"
|
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "Podcast;RSS;"
|
msgid "Podcast;RSS;"
|
||||||
@@ -118,19 +113,23 @@ msgstr "Tambahkan acara baru melalui URL feed"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Impor acara dari perangkat lain"
|
msgstr "Impor acara dari perangkat lain"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Anda sudah mendengarkan episode ini."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Menghitung ukuran episode…"
|
msgstr "Menghitung ukuran episode…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Putar episode ini"
|
msgstr "Putar episode ini"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "Batalkan proses pengunduhan"
|
msgstr "Batalkan proses pengunduhan"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Unduh episode ini"
|
msgstr "Unduh episode ini"
|
||||||
|
|
||||||
@@ -147,19 +146,15 @@ msgid "_Export Shows"
|
|||||||
msgstr "_Ekspor Acara"
|
msgstr "_Ekspor Acara"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "_Preferensi"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "Pintasan Papan _Ketik"
|
msgstr "Pintasan Papan _Ketik"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "Tent_ang Podcast"
|
msgstr "Tent_ang Podcast"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:189
|
#: podcasts-gtk/resources/gtk/headerbar.ui:177
|
||||||
msgid "Add a new feed"
|
msgid "Add a new feed"
|
||||||
msgstr "Tambahkan feed baru"
|
msgstr "Tambahkan feed baru"
|
||||||
|
|
||||||
@@ -171,15 +166,11 @@ msgstr "Masukkan alamat feed untuk ditambahkan"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Tambah"
|
msgstr "Tambah"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:133
|
#: podcasts-gtk/resources/gtk/headerbar.ui:157
|
||||||
msgid "You are already subscribed to that feed!"
|
|
||||||
msgstr "Anda sudah berlangganan feed itu!"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:169
|
|
||||||
msgid "Show Title"
|
msgid "Show Title"
|
||||||
msgstr "Tampilkan Judul"
|
msgstr "Tampilkan Judul"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:210
|
#: podcasts-gtk/resources/gtk/headerbar.ui:198
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Kembali"
|
msgstr "Kembali"
|
||||||
|
|
||||||
@@ -194,11 +185,6 @@ msgstr "Periksa episode baru"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Preferensi"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Keluar dari aplikasi"
|
msgstr "Keluar dari aplikasi"
|
||||||
|
|
||||||
@@ -275,27 +261,6 @@ msgstr "tingkat kecepatan 1.25"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Kecepatan normal"
|
msgstr "Kecepatan normal"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Preferensi"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Penampilan"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Tema Gelap"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Hapus episode yang diputar"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Sesudah"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "Tandai Se_mua Episode sebagai Sudah Diputar"
|
msgstr "Tandai Se_mua Episode sebagai Sudah Diputar"
|
||||||
@@ -320,38 +285,18 @@ msgstr "Tandai Semua sebagai Sudah Diputar"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Berhenti Berlangganan"
|
msgstr "Berhenti Berlangganan"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:369
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Mengambil episode baru"
|
msgstr "Mengambil episode baru"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:117
|
#: podcasts-gtk/src/headerbar.rs:127
|
||||||
msgid "You are already subscribed to this show"
|
msgid "You are already subscribed to this show"
|
||||||
msgstr "Anda sudah berlangganan ke acara ini"
|
msgstr "Anda sudah berlangganan ke acara ini"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:125
|
#: podcasts-gtk/src/headerbar.rs:145
|
||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "URL tak valid"
|
msgstr "URL tak valid"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "Detik"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "Menit"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "Jam"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "Hari"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "Minggu"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Baru"
|
msgstr "Baru"
|
||||||
@@ -360,43 +305,43 @@ msgstr "Baru"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Acara"
|
msgstr "Acara"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:377
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Pilih berkas dari mana Anda ingin mengimpor acara."
|
msgstr "Pilih berkas dari mana Anda ingin mengimpor acara."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:380
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "_Impor"
|
msgstr "_Impor"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:389 podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "Berkas OPML"
|
msgstr "Berkas OPML"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:406
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "Gagal mengurai berkas yang diimpor"
|
msgstr "Gagal mengurai berkas yang diimpor"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:411 podcasts-gtk/src/utils.rs:453
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "Berkas yang dipilih tidak dapat diakses."
|
msgstr "Berkas yang dipilih tidak dapat diakses."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:423
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "Ekspor acara ke…"
|
msgstr "Ekspor acara ke…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:426
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "_Ekspor"
|
msgstr "_Ekspor"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:427
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "_Batal"
|
msgstr "_Batal"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "Berlangganan GNOME Podcast"
|
msgstr "Berlangganan GNOME Podcast"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:448
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "Gagal mengekspor podcast"
|
msgstr "Gagal mengekspor podcast"
|
||||||
|
|
||||||
@@ -412,22 +357,65 @@ msgstr "Pelajari lebih lanjut tentang GNOME Podcast"
|
|||||||
msgid "translator-credits"
|
msgid "translator-credits"
|
||||||
msgstr "Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2018, 2019."
|
msgstr "Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2018, 2019."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:149
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} mnt"
|
msgstr "{} mnt"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "Pemutar media tidak dapat melakukan aksi."
|
msgstr "Pemutar media tidak dapat melakukan aksi."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:169
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Tandai semua episode sebagai sudah didengarkan"
|
msgstr "Tandai semua episode sebagai sudah didengarkan"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:174
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "Berhenti berlangganan dari {}"
|
msgstr "Berhenti berlangganan dari {}"
|
||||||
|
|
||||||
|
#~ msgid "@icon@"
|
||||||
|
#~ msgstr "@icon@"
|
||||||
|
|
||||||
|
#~ msgid "_Preferences"
|
||||||
|
#~ msgstr "_Preferensi"
|
||||||
|
|
||||||
|
#~ msgid "You are already subscribed to that feed!"
|
||||||
|
#~ msgstr "Anda sudah berlangganan feed itu!"
|
||||||
|
|
||||||
|
#~ msgctxt "shortcut window"
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Preferensi"
|
||||||
|
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Preferensi"
|
||||||
|
|
||||||
|
#~ msgid "Appearance"
|
||||||
|
#~ msgstr "Penampilan"
|
||||||
|
|
||||||
|
#~ msgid "Dark Theme"
|
||||||
|
#~ msgstr "Tema Gelap"
|
||||||
|
|
||||||
|
#~ msgid "Delete played episodes"
|
||||||
|
#~ msgstr "Hapus episode yang diputar"
|
||||||
|
|
||||||
|
#~ msgid "After"
|
||||||
|
#~ msgstr "Sesudah"
|
||||||
|
|
||||||
|
#~ msgid "Seconds"
|
||||||
|
#~ msgstr "Detik"
|
||||||
|
|
||||||
|
#~ msgid "Minutes"
|
||||||
|
#~ msgstr "Menit"
|
||||||
|
|
||||||
|
#~ msgid "Hours"
|
||||||
|
#~ msgstr "Jam"
|
||||||
|
|
||||||
|
#~ msgid "Days"
|
||||||
|
#~ msgstr "Hari"
|
||||||
|
|
||||||
|
#~ msgid "Weeks"
|
||||||
|
#~ msgstr "Minggu"
|
||||||
|
|
||||||
#~ msgid "_About"
|
#~ msgid "_About"
|
||||||
#~ msgstr "Tent_ang"
|
#~ msgstr "Tent_ang"
|
||||||
|
|||||||
+27
-78
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts\n"
|
"Project-Id-Version: podcasts\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-02 15:17+0000\n"
|
"POT-Creation-Date: 2019-05-18 12:55+0000\n"
|
||||||
"PO-Revision-Date: 2019-02-02 16:30+0100\n"
|
"PO-Revision-Date: 2019-05-19 12:37+0200\n"
|
||||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
||||||
"Language-Team: Polish <community-poland@mozilla.org>\n"
|
"Language-Team: Polish <community-poland@mozilla.org>\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
@@ -70,7 +70,7 @@ msgstr "Jaki okres czekać między automatycznym czyszczeniem"
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:455
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcasty"
|
msgstr "Podcasty"
|
||||||
@@ -80,11 +80,6 @@ msgstr "Podcasty"
|
|||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Słuchanie ulubionych podcastów prosto z komputera."
|
msgstr "Słuchanie ulubionych podcastów prosto z komputera."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
|
||||||
msgid "@icon@"
|
|
||||||
msgstr "@icon@"
|
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "Podcast;RSS;"
|
msgid "Podcast;RSS;"
|
||||||
@@ -118,19 +113,23 @@ msgstr "Dodaj nowe programy za pomocą adresu kanału"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Zaimportuj programy z innego urządzenia"
|
msgstr "Zaimportuj programy z innego urządzenia"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Ten odcinek został już odsłuchany"
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Obliczanie rozmiaru odcinka…"
|
msgstr "Obliczanie rozmiaru odcinka…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Odtwarza ten odcinek"
|
msgstr "Odtwarza ten odcinek"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "Anuluje pobieranie"
|
msgstr "Anuluje pobieranie"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Pobiera ten odcinek"
|
msgstr "Pobiera ten odcinek"
|
||||||
|
|
||||||
@@ -147,14 +146,10 @@ msgid "_Export Shows"
|
|||||||
msgstr "Wy_eksportuj programy"
|
msgstr "Wy_eksportuj programy"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "_Preferencje"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "_Skróty klawiszowe"
|
msgstr "_Skróty klawiszowe"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "_O programie"
|
msgstr "_O programie"
|
||||||
|
|
||||||
@@ -194,11 +189,6 @@ msgstr "Wyszukanie nowych odcinków"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Preferencje"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Zakończenie działania programu"
|
msgstr "Zakończenie działania programu"
|
||||||
|
|
||||||
@@ -275,27 +265,6 @@ msgstr "Prędkość 1,25"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Zwykła prędkość"
|
msgstr "Zwykła prędkość"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Preferencje"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Wygląd"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Ciemny motyw"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Usuwanie odtworzonych odcinków"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Po"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "_Oznacz wszystkie odcinki jako odtworzone"
|
msgstr "_Oznacz wszystkie odcinki jako odtworzone"
|
||||||
@@ -320,7 +289,7 @@ msgstr "Oznacz wszystkie jako odtworzone"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Zrezygnuj z subskrypcji"
|
msgstr "Zrezygnuj z subskrypcji"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:369
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Pobieranie nowych odcinków"
|
msgstr "Pobieranie nowych odcinków"
|
||||||
|
|
||||||
@@ -332,26 +301,6 @@ msgstr "Ten program jest już subskrybowany"
|
|||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "Nieprawidłowy adres"
|
msgstr "Nieprawidłowy adres"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "Sekundy"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "Minuty"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "Godziny"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "Dni"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "Tygodnie"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Nowe"
|
msgstr "Nowe"
|
||||||
@@ -360,43 +309,43 @@ msgstr "Nowe"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Programy"
|
msgstr "Programy"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:377
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Proszę wybrać plik, z którego zaimportować programy."
|
msgstr "Proszę wybrać plik, z którego zaimportować programy."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:380
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "Zai_mportuj"
|
msgstr "Zai_mportuj"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:389 podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "Plik OPML"
|
msgstr "Plik OPML"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:406
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "Przetworzenie zaimportowanego pliku się nie powiodło"
|
msgstr "Przetworzenie zaimportowanego pliku się nie powiodło"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:411 podcasts-gtk/src/utils.rs:453
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "Nie można uzyskać dostępu do wybranego pliku."
|
msgstr "Nie można uzyskać dostępu do wybranego pliku."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:423
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "Eksport programów do…"
|
msgstr "Eksport programów do…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:426
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "Wy_eksportuj"
|
msgstr "Wy_eksportuj"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:427
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "_Anuluj"
|
msgstr "_Anuluj"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "Subskrypcje Podcastów GNOME"
|
msgstr "Subskrypcje Podcastów GNOME"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:448
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "Wyeksportowanie podcastów się nie powiodło"
|
msgstr "Wyeksportowanie podcastów się nie powiodło"
|
||||||
|
|
||||||
@@ -414,19 +363,19 @@ msgstr ""
|
|||||||
"Piotr Drąg <piotrdrag@gmail.com>, 2018-2019\n"
|
"Piotr Drąg <piotrdrag@gmail.com>, 2018-2019\n"
|
||||||
"Aviary.pl <community-poland@mozilla.org>, 2018-2019"
|
"Aviary.pl <community-poland@mozilla.org>, 2018-2019"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:149
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} min"
|
msgstr "{} min"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "Odtwarzacz multimediów nie może wykonać działania."
|
msgstr "Odtwarzacz multimediów nie może wykonać działania."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:169
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Oznaczono wszystkie odcinki jako odsłuchane"
|
msgstr "Oznaczono wszystkie odcinki jako odsłuchane"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:174
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "Zrezygnowano z subskrypcji „{}”"
|
msgstr "Zrezygnowano z subskrypcji „{}”"
|
||||||
|
|||||||
+77
-90
@@ -8,16 +8,16 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts master\n"
|
"Project-Id-Version: podcasts master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-02 15:17+0000\n"
|
"POT-Creation-Date: 2019-06-09 02:38+0000\n"
|
||||||
"PO-Revision-Date: 2019-03-09 22:31-0300\n"
|
"PO-Revision-Date: 2019-06-13 15:32-0300\n"
|
||||||
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
|
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
|
||||||
"Language-Team: Portuguese - Brazil <gnome-pt_br-list@gnome.org>\n"
|
"Language-Team: Portuguese - Brazil <gnome-pt_br-list@gnome.org>\n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
"X-Generator: Gtranslator 3.31.90\n"
|
"X-Generator: Poedit 2.2.3\n"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
@@ -71,7 +71,7 @@ msgstr "Qual período de tempo deve esperar entre limpezas automáticas"
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:455
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcasts"
|
msgstr "Podcasts"
|
||||||
@@ -81,11 +81,6 @@ msgstr "Podcasts"
|
|||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Ouça seus podcasts favoritos diretamente da sua área de trabalho."
|
msgstr "Ouça seus podcasts favoritos diretamente da sua área de trabalho."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
|
||||||
msgid "@icon@"
|
|
||||||
msgstr "@icon@"
|
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "Podcast;RSS;"
|
msgid "Podcast;RSS;"
|
||||||
@@ -121,19 +116,23 @@ msgstr "Adicionar novos podcasts via URL do feed"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Importar podcasts de outro dispositivo"
|
msgstr "Importar podcasts de outro dispositivo"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Você já ouviu este episódio."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Calculando o tamanho do episódio…"
|
msgstr "Calculando o tamanho do episódio…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Inicia este episódio"
|
msgstr "Inicia este episódio"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "Cancela o processo de download"
|
msgstr "Cancela o processo de download"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Faz download deste episódio"
|
msgstr "Faz download deste episódio"
|
||||||
|
|
||||||
@@ -150,19 +149,15 @@ msgid "_Export Shows"
|
|||||||
msgstr "_Exportar podcasts"
|
msgstr "_Exportar podcasts"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "_Preferências"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "Atal_hos de teclado"
|
msgstr "Atal_hos de teclado"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "_Sobre Podcasts"
|
msgstr "_Sobre Podcasts"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:189
|
#: podcasts-gtk/resources/gtk/headerbar.ui:177
|
||||||
msgid "Add a new feed"
|
msgid "Add a new feed"
|
||||||
msgstr "Adiciona um novo feed"
|
msgstr "Adiciona um novo feed"
|
||||||
|
|
||||||
@@ -174,15 +169,11 @@ msgstr "Insira o endereço do feed para adicioná-lo"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Adicionar"
|
msgstr "Adicionar"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:133
|
#: podcasts-gtk/resources/gtk/headerbar.ui:157
|
||||||
msgid "You are already subscribed to that feed!"
|
|
||||||
msgstr "Você já está inscrito naquele feed!"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:169
|
|
||||||
msgid "Show Title"
|
msgid "Show Title"
|
||||||
msgstr "Mostrar título"
|
msgstr "Mostrar título"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:210
|
#: podcasts-gtk/resources/gtk/headerbar.ui:198
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Voltar"
|
msgstr "Voltar"
|
||||||
|
|
||||||
@@ -197,11 +188,6 @@ msgstr "Procura por novos episódios"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Preferências"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Sai do aplicativo"
|
msgstr "Sai do aplicativo"
|
||||||
|
|
||||||
@@ -278,27 +264,6 @@ msgstr "Taxa de velocidade de 1,25"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Velocidade normal"
|
msgstr "Velocidade normal"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Preferências"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Aparência"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Tema escuro"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Excluir episódios já reproduzidos"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Após"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "_Marcar todos os episódios como reproduzidos"
|
msgstr "_Marcar todos os episódios como reproduzidos"
|
||||||
@@ -323,38 +288,18 @@ msgstr "Marcar todos como reproduzidos"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Desinscrever"
|
msgstr "Desinscrever"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:369
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Buscando novos episódios"
|
msgstr "Buscando novos episódios"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:117
|
#: podcasts-gtk/src/headerbar.rs:120
|
||||||
msgid "You are already subscribed to this show"
|
msgid "You are already subscribed to this show"
|
||||||
msgstr "Você já está inscrito neste podcast"
|
msgstr "Você já está inscrito neste podcast"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:125
|
#: podcasts-gtk/src/headerbar.rs:135
|
||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "URL inválida"
|
msgstr "URL inválida"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "Segundos"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "Minutos"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "Horas"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "Dias"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "Semanas"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Novo"
|
msgstr "Novo"
|
||||||
@@ -363,44 +308,43 @@ msgstr "Novo"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Podcasts"
|
msgstr "Podcasts"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:377
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Selecione o arquivo a partir do qual você deseja importar podcasts."
|
msgstr "Selecione o arquivo a partir do qual você deseja importar podcasts."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:380
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "_Importar"
|
msgstr "_Importar"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:389 podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "Arquivo OPML"
|
msgstr "Arquivo OPML"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:406
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "Falha ao analisar o arquivo importado"
|
msgstr "Falha ao analisar o arquivo importado"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:411 podcasts-gtk/src/utils.rs:453
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "O arquivo selecionado não pôde ser acessado."
|
msgstr "O arquivo selecionado não pôde ser acessado."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:423
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
#| msgid "Export shows to..."
|
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "Exportar podcasts para…"
|
msgstr "Exportar podcasts para…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:426
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "_Exportar"
|
msgstr "_Exportar"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:427
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "_Cancelar"
|
msgstr "_Cancelar"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "Inscrições do GNOME Podcasts"
|
msgstr "Inscrições do GNOME Podcasts"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:448
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "Falha ao exportar podcasts"
|
msgstr "Falha ao exportar podcasts"
|
||||||
|
|
||||||
@@ -418,22 +362,65 @@ msgstr ""
|
|||||||
"Rafael Fontenelle <rafaelff@gnome.org>\n"
|
"Rafael Fontenelle <rafaelff@gnome.org>\n"
|
||||||
"Yuri Otávio Lopes Gomes <yuriotavio@hotmail.com>"
|
"Yuri Otávio Lopes Gomes <yuriotavio@hotmail.com>"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:149
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} min"
|
msgstr "{} min"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "O reprodutor de mídia não conseguiu executar uma ação."
|
msgstr "O reprodutor de mídia não conseguiu executar uma ação."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:169
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Marcados todos os episódios como ouvidos"
|
msgstr "Marcados todos os episódios como ouvidos"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:174
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "Desinscrito de {}"
|
msgstr "Desinscrito de {}"
|
||||||
|
|
||||||
|
#~ msgid "@icon@"
|
||||||
|
#~ msgstr "@icon@"
|
||||||
|
|
||||||
|
#~ msgid "_Preferences"
|
||||||
|
#~ msgstr "_Preferências"
|
||||||
|
|
||||||
|
#~ msgid "You are already subscribed to that feed!"
|
||||||
|
#~ msgstr "Você já está inscrito naquele feed!"
|
||||||
|
|
||||||
|
#~ msgctxt "shortcut window"
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Preferências"
|
||||||
|
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Preferências"
|
||||||
|
|
||||||
|
#~ msgid "Appearance"
|
||||||
|
#~ msgstr "Aparência"
|
||||||
|
|
||||||
|
#~ msgid "Dark Theme"
|
||||||
|
#~ msgstr "Tema escuro"
|
||||||
|
|
||||||
|
#~ msgid "Delete played episodes"
|
||||||
|
#~ msgstr "Excluir episódios já reproduzidos"
|
||||||
|
|
||||||
|
#~ msgid "After"
|
||||||
|
#~ msgstr "Após"
|
||||||
|
|
||||||
|
#~ msgid "Seconds"
|
||||||
|
#~ msgstr "Segundos"
|
||||||
|
|
||||||
|
#~ msgid "Minutes"
|
||||||
|
#~ msgstr "Minutos"
|
||||||
|
|
||||||
|
#~ msgid "Hours"
|
||||||
|
#~ msgstr "Horas"
|
||||||
|
|
||||||
|
#~ msgid "Days"
|
||||||
|
#~ msgstr "Dias"
|
||||||
|
|
||||||
|
#~ msgid "Weeks"
|
||||||
|
#~ msgstr "Semanas"
|
||||||
|
|
||||||
#~ msgid "_About"
|
#~ msgid "_About"
|
||||||
#~ msgstr "_Sobre"
|
#~ msgstr "_Sobre"
|
||||||
|
|||||||
+76
-88
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts master\n"
|
"Project-Id-Version: podcasts master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-02 15:17+0000\n"
|
"POT-Creation-Date: 2019-06-15 10:55+0000\n"
|
||||||
"PO-Revision-Date: 2019-03-13 23:00+0100\n"
|
"PO-Revision-Date: 2019-08-22 17:54+0200\n"
|
||||||
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
|
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
|
||||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
@@ -16,7 +16,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Generator: Poedit 2.2.1\n"
|
"X-Generator: Poedit 2.2.3\n"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
@@ -69,7 +69,7 @@ msgstr "Vilken sorts tidsperiod att vänta mellan automatiska upprensningar"
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:455
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Poddsändningar"
|
msgstr "Poddsändningar"
|
||||||
@@ -79,11 +79,6 @@ msgstr "Poddsändningar"
|
|||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Lyssna på dina favoritpoddsändningar, direkt från ditt skrivbord."
|
msgstr "Lyssna på dina favoritpoddsändningar, direkt från ditt skrivbord."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
|
||||||
msgid "@icon@"
|
|
||||||
msgstr "@icon@"
|
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "Podcast;RSS;"
|
msgid "Podcast;RSS;"
|
||||||
@@ -117,19 +112,23 @@ msgstr "Lägg till nya shower via flödes-URL"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Importera shower från en annan enhet"
|
msgstr "Importera shower från en annan enhet"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Du har redan lyssnat på detta avsnitt."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Beräknar avsnittsstorlek…"
|
msgstr "Beräknar avsnittsstorlek…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Spela detta avsnitt"
|
msgstr "Spela detta avsnitt"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "Avbryt hämtningsprocessen"
|
msgstr "Avbryt hämtningsprocessen"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Hämta detta avsnitt"
|
msgstr "Hämta detta avsnitt"
|
||||||
|
|
||||||
@@ -146,19 +145,15 @@ msgid "_Export Shows"
|
|||||||
msgstr "_Exportera shower"
|
msgstr "_Exportera shower"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "I_nställningar"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "_Tangentbordsgenvägar"
|
msgstr "_Tangentbordsgenvägar"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "_Om Poddsändningar"
|
msgstr "_Om Poddsändningar"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:189
|
#: podcasts-gtk/resources/gtk/headerbar.ui:177
|
||||||
msgid "Add a new feed"
|
msgid "Add a new feed"
|
||||||
msgstr "Lägg till ett nytt flöde"
|
msgstr "Lägg till ett nytt flöde"
|
||||||
|
|
||||||
@@ -170,15 +165,11 @@ msgstr "Ange flödesadress att lägga till"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Lägg till"
|
msgstr "Lägg till"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:133
|
#: podcasts-gtk/resources/gtk/headerbar.ui:157
|
||||||
msgid "You are already subscribed to that feed!"
|
|
||||||
msgstr "Du prenumererar redan på det flödet!"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:169
|
|
||||||
msgid "Show Title"
|
msgid "Show Title"
|
||||||
msgstr "Visa titel"
|
msgstr "Visa titel"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:210
|
#: podcasts-gtk/resources/gtk/headerbar.ui:198
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Bakåt"
|
msgstr "Bakåt"
|
||||||
|
|
||||||
@@ -193,11 +184,6 @@ msgstr "Sök efter nya avsnitt"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Inställningar"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Avsluta programmet"
|
msgstr "Avsluta programmet"
|
||||||
|
|
||||||
@@ -274,27 +260,6 @@ msgstr "Hastighetsfaktor 1,25"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Normal hastighet"
|
msgstr "Normal hastighet"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Inställningar"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Utseende"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Mörkt tema"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Ta bort spelade avsnitt"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Efter"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "_Markera alla avsnitt som spelade"
|
msgstr "_Markera alla avsnitt som spelade"
|
||||||
@@ -319,38 +284,18 @@ msgstr "Markera alla som spelade"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Säg upp prenumeration"
|
msgstr "Säg upp prenumeration"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:369
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Hämtar nya avsnitt"
|
msgstr "Hämtar nya avsnitt"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:117
|
#: podcasts-gtk/src/headerbar.rs:127
|
||||||
msgid "You are already subscribed to this show"
|
msgid "You are already subscribed to this show"
|
||||||
msgstr "Du prenumererar redan på denna show"
|
msgstr "Du prenumererar redan på denna show"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:125
|
#: podcasts-gtk/src/headerbar.rs:145
|
||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "Ogiltig URL"
|
msgstr "Ogiltig URL"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "Sekunder"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "Minuter"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "Timmar"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "Dagar"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "Veckor"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Nytt"
|
msgstr "Nytt"
|
||||||
@@ -359,43 +304,43 @@ msgstr "Nytt"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Shower"
|
msgstr "Shower"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:377
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Välj filen från vilken du vill importera shower."
|
msgstr "Välj filen från vilken du vill importera shower."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:380
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "_Importera"
|
msgstr "_Importera"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:389 podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "OPML-fil"
|
msgstr "OPML-fil"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:406
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "Misslyckades med att tolka den importerade filen"
|
msgstr "Misslyckades med att tolka den importerade filen"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:411 podcasts-gtk/src/utils.rs:453
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "Den markerade filen kunde inte kommas åt."
|
msgstr "Den markerade filen kunde inte kommas åt."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:423
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "Exportera shower till…"
|
msgstr "Exportera shower till…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:426
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "_Exportera"
|
msgstr "_Exportera"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:427
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "A_vbryt"
|
msgstr "A_vbryt"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "GNOME Poddsändningar-prenumerationer"
|
msgstr "GNOME Poddsändningar-prenumerationer"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:448
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "Misslyckades med att exportera poddsändningar"
|
msgstr "Misslyckades med att exportera poddsändningar"
|
||||||
|
|
||||||
@@ -415,22 +360,65 @@ msgstr ""
|
|||||||
"Skicka synpunkter på översättningen till\n"
|
"Skicka synpunkter på översättningen till\n"
|
||||||
"<tp-sv@listor.tp-sv.se>."
|
"<tp-sv@listor.tp-sv.se>."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:149
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} min"
|
msgstr "{} min"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "Mediaspelaren kunde inte utföra en åtgärd."
|
msgstr "Mediaspelaren kunde inte utföra en åtgärd."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:169
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Markerade alla avsnitt som lyssnade"
|
msgstr "Markerade alla avsnitt som lyssnade"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:174
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "Sade upp prenumeration från {}"
|
msgstr "Sade upp prenumeration från {}"
|
||||||
|
|
||||||
|
#~ msgid "@icon@"
|
||||||
|
#~ msgstr "@icon@"
|
||||||
|
|
||||||
|
#~ msgid "_Preferences"
|
||||||
|
#~ msgstr "I_nställningar"
|
||||||
|
|
||||||
|
#~ msgid "You are already subscribed to that feed!"
|
||||||
|
#~ msgstr "Du prenumererar redan på det flödet!"
|
||||||
|
|
||||||
|
#~ msgctxt "shortcut window"
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Inställningar"
|
||||||
|
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Inställningar"
|
||||||
|
|
||||||
|
#~ msgid "Appearance"
|
||||||
|
#~ msgstr "Utseende"
|
||||||
|
|
||||||
|
#~ msgid "Dark Theme"
|
||||||
|
#~ msgstr "Mörkt tema"
|
||||||
|
|
||||||
|
#~ msgid "Delete played episodes"
|
||||||
|
#~ msgstr "Ta bort spelade avsnitt"
|
||||||
|
|
||||||
|
#~ msgid "After"
|
||||||
|
#~ msgstr "Efter"
|
||||||
|
|
||||||
|
#~ msgid "Seconds"
|
||||||
|
#~ msgstr "Sekunder"
|
||||||
|
|
||||||
|
#~ msgid "Minutes"
|
||||||
|
#~ msgstr "Minuter"
|
||||||
|
|
||||||
|
#~ msgid "Hours"
|
||||||
|
#~ msgstr "Timmar"
|
||||||
|
|
||||||
|
#~ msgid "Days"
|
||||||
|
#~ msgstr "Dagar"
|
||||||
|
|
||||||
|
#~ msgid "Weeks"
|
||||||
|
#~ msgstr "Veckor"
|
||||||
|
|
||||||
#~ msgid "_About"
|
#~ msgid "_About"
|
||||||
#~ msgstr "_Om"
|
#~ msgstr "_Om"
|
||||||
|
|||||||
+83
-91
@@ -1,22 +1,24 @@
|
|||||||
# Turkish translation for podcasts.
|
# Turkish translation for podcasts.
|
||||||
# Copyright (C) 2018 podcasts's COPYRIGHT HOLDER
|
# Copyright (C) 2018-2019 podcasts's COPYRIGHT HOLDER
|
||||||
# This file is distributed under the same license as the podcasts package.
|
# This file is distributed under the same license as the podcasts package.
|
||||||
|
#
|
||||||
# Emin Tufan Çetin <etcetin@gmail.com>, 2018-2019.
|
# Emin Tufan Çetin <etcetin@gmail.com>, 2018-2019.
|
||||||
|
# Sabri Ünal <libreajans@gmail.com>, 2019.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: podcasts master\n"
|
"Project-Id-Version: podcasts master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/podcasts/issues\n"
|
||||||
"POT-Creation-Date: 2019-03-03 16:03+0000\n"
|
"POT-Creation-Date: 2019-06-15 10:55+0000\n"
|
||||||
"PO-Revision-Date: 2019-03-06 13:46+0300\n"
|
"PO-Revision-Date: 2019-09-04 15:16+0300\n"
|
||||||
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
|
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
|
||||||
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
|
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
|
||||||
"Language: tr\n"
|
"Language: tr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Gtranslator 3.30.1\n"
|
"X-Generator: Poedit 2.0.6\n"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
#: podcasts-gtk/resources/org.gnome.Podcasts.gschema.xml:15
|
||||||
msgid "Top position of the last open main window"
|
msgid "Top position of the last open main window"
|
||||||
@@ -69,7 +71,7 @@ msgstr "Kendiliğinden temizlemeler arasında beklenecek zaman aralığı"
|
|||||||
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
#. Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:3
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
#: podcasts-gtk/resources/org.gnome.Podcasts.appdata.xml.in.in:4
|
||||||
#: podcasts-gtk/src/app.rs:124 podcasts-gtk/src/app.rs:463
|
#: podcasts-gtk/src/app.rs:109 podcasts-gtk/src/app.rs:433
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:56
|
||||||
msgid "Podcasts"
|
msgid "Podcasts"
|
||||||
msgstr "Podcastler"
|
msgstr "Podcastler"
|
||||||
@@ -79,11 +81,6 @@ msgstr "Podcastler"
|
|||||||
msgid "Listen to your favorite podcasts, right from your desktop."
|
msgid "Listen to your favorite podcasts, right from your desktop."
|
||||||
msgstr "Gözde podcastlerinizi masaüstünüzden dinleyin."
|
msgstr "Gözde podcastlerinizi masaüstünüzden dinleyin."
|
||||||
|
|
||||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:6
|
|
||||||
msgid "@icon@"
|
|
||||||
msgstr "@icon@"
|
|
||||||
|
|
||||||
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
||||||
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
#: podcasts-gtk/resources/org.gnome.Podcasts.desktop.in.in:13
|
||||||
msgid "Podcast;RSS;"
|
msgid "Podcast;RSS;"
|
||||||
@@ -117,19 +114,23 @@ msgstr "Besleme URLʼsi ile yeni gösteriler ekle"
|
|||||||
msgid "Import shows from another device"
|
msgid "Import shows from another device"
|
||||||
msgstr "Gösterileri başka aygıttan içe aktar"
|
msgstr "Gösterileri başka aygıttan içe aktar"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:180
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:79
|
||||||
|
msgid "You’ve already listened to this episode."
|
||||||
|
msgstr "Bu bölümü zaten dinlediniz."
|
||||||
|
|
||||||
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:208
|
||||||
msgid "Calculating episode size…"
|
msgid "Calculating episode size…"
|
||||||
msgstr "Bölüm boyutu hesaplanıyor…"
|
msgstr "Bölüm boyutu hesaplanıyor…"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:220
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:248
|
||||||
msgid "Play this episode"
|
msgid "Play this episode"
|
||||||
msgstr "Bu bölümü oynat"
|
msgstr "Bu bölümü oynat"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:241
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:269
|
||||||
msgid "Cancel the download process"
|
msgid "Cancel the download process"
|
||||||
msgstr "İndirme sürecini iptal et"
|
msgstr "İndirme sürecini iptal et"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/episode_widget.ui:264
|
#: podcasts-gtk/resources/gtk/episode_widget.ui:292
|
||||||
msgid "Download this episode"
|
msgid "Download this episode"
|
||||||
msgstr "Bu bölümü indir"
|
msgstr "Bu bölümü indir"
|
||||||
|
|
||||||
@@ -146,19 +147,15 @@ msgid "_Export Shows"
|
|||||||
msgstr "_Gösterileri Dışa Aktar"
|
msgstr "_Gösterileri Dışa Aktar"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
#: podcasts-gtk/resources/gtk/hamburger.ui:22
|
||||||
msgid "_Preferences"
|
|
||||||
msgstr "_Tercihler"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:27
|
|
||||||
msgid "_Keyboard Shortcuts"
|
msgid "_Keyboard Shortcuts"
|
||||||
msgstr "_Klavye Kısayolları"
|
msgstr "_Klavye Kısayolları"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/hamburger.ui:35
|
#: podcasts-gtk/resources/gtk/hamburger.ui:30
|
||||||
msgid "_About Podcasts"
|
msgid "_About Podcasts"
|
||||||
msgstr "Podcastler _Hakkında"
|
msgstr "Podcastler _Hakkında"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
#: podcasts-gtk/resources/gtk/headerbar.ui:35
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:189
|
#: podcasts-gtk/resources/gtk/headerbar.ui:177
|
||||||
msgid "Add a new feed"
|
msgid "Add a new feed"
|
||||||
msgstr "Yeni besleme ekle"
|
msgstr "Yeni besleme ekle"
|
||||||
|
|
||||||
@@ -170,15 +167,11 @@ msgstr "Eklenecek besleme adresini gir"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Ekle"
|
msgstr "Ekle"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:133
|
#: podcasts-gtk/resources/gtk/headerbar.ui:157
|
||||||
msgid "You are already subscribed to that feed!"
|
|
||||||
msgstr "Bu beslemeye zaten abonesiniz!"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:169
|
|
||||||
msgid "Show Title"
|
msgid "Show Title"
|
||||||
msgstr "Gösteri Başlığı"
|
msgstr "Gösteri Başlığı"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/headerbar.ui:210
|
#: podcasts-gtk/resources/gtk/headerbar.ui:198
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Geri"
|
msgstr "Geri"
|
||||||
|
|
||||||
@@ -193,11 +186,6 @@ msgstr "Yeni bölümleri denetle"
|
|||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
#: podcasts-gtk/resources/gtk/help-overlay.ui:25
|
||||||
msgctxt "shortcut window"
|
msgctxt "shortcut window"
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Tercihler"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/help-overlay.ui:32
|
|
||||||
msgctxt "shortcut window"
|
|
||||||
msgid "Quit the application"
|
msgid "Quit the application"
|
||||||
msgstr "Uygulamadan çık"
|
msgstr "Uygulamadan çık"
|
||||||
|
|
||||||
@@ -274,27 +262,6 @@ msgstr "1.25 hız oranı"
|
|||||||
msgid "Normal speed"
|
msgid "Normal speed"
|
||||||
msgstr "Olağan hız"
|
msgstr "Olağan hız"
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:42
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:295
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Tercihler"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:76
|
|
||||||
msgid "Appearance"
|
|
||||||
msgstr "Görünüm"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:120
|
|
||||||
msgid "Dark Theme"
|
|
||||||
msgstr "Karanlık Gövde"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:166
|
|
||||||
msgid "Delete played episodes"
|
|
||||||
msgstr "Oynatılan bölümleri sil"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/prefs.ui:211
|
|
||||||
msgid "After"
|
|
||||||
msgstr "Şundan Sonra"
|
|
||||||
|
|
||||||
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
#: podcasts-gtk/resources/gtk/secondary_menu.ui:7
|
||||||
msgid "_Mark All Episodes as Played"
|
msgid "_Mark All Episodes as Played"
|
||||||
msgstr "Tüm Bölümleri Oynatıldı Olarak _İmle"
|
msgstr "Tüm Bölümleri Oynatıldı Olarak _İmle"
|
||||||
@@ -319,38 +286,18 @@ msgstr "Tümünü Oynatıldı Olarak İmle"
|
|||||||
msgid "Unsubscribe"
|
msgid "Unsubscribe"
|
||||||
msgstr "Abonelikten Çık"
|
msgstr "Abonelikten Çık"
|
||||||
|
|
||||||
#: podcasts-gtk/src/app.rs:378
|
#: podcasts-gtk/src/app.rs:351
|
||||||
msgid "Fetching new episodes"
|
msgid "Fetching new episodes"
|
||||||
msgstr "Yeni bölümler alınıyor"
|
msgstr "Yeni bölümler alınıyor"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:117
|
#: podcasts-gtk/src/headerbar.rs:127
|
||||||
msgid "You are already subscribed to this show"
|
msgid "You are already subscribed to this show"
|
||||||
msgstr "Bu gösteriye zaten abonesiniz"
|
msgstr "Bu gösteriye zaten abonesiniz"
|
||||||
|
|
||||||
#: podcasts-gtk/src/headerbar.rs:125
|
#: podcasts-gtk/src/headerbar.rs:145
|
||||||
msgid "Invalid URL"
|
msgid "Invalid URL"
|
||||||
msgstr "Geçersiz URL"
|
msgstr "Geçersiz URL"
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:78
|
|
||||||
msgid "Seconds"
|
|
||||||
msgstr "Saniye"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:79
|
|
||||||
msgid "Minutes"
|
|
||||||
msgstr "Dakika"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:80
|
|
||||||
msgid "Hours"
|
|
||||||
msgstr "Saat"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:81
|
|
||||||
msgid "Days"
|
|
||||||
msgstr "Gün"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/prefs.rs:82
|
|
||||||
msgid "Weeks"
|
|
||||||
msgstr "Hafta"
|
|
||||||
|
|
||||||
#: podcasts-gtk/src/stacks/content.rs:54
|
#: podcasts-gtk/src/stacks/content.rs:54
|
||||||
msgid "New"
|
msgid "New"
|
||||||
msgstr "Yeni"
|
msgstr "Yeni"
|
||||||
@@ -359,43 +306,43 @@ msgstr "Yeni"
|
|||||||
msgid "Shows"
|
msgid "Shows"
|
||||||
msgstr "Gösteriler"
|
msgstr "Gösteriler"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:387
|
#: podcasts-gtk/src/utils.rs:397
|
||||||
msgid "Select the file from which to you want to import shows."
|
msgid "Select the file from which to you want to import shows."
|
||||||
msgstr "Gösterileri içe aktarmak istediğiniz dosyayı seçin."
|
msgstr "Gösterileri içe aktarmak istediğiniz dosyayı seçin."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:390
|
#: podcasts-gtk/src/utils.rs:400
|
||||||
msgid "_Import"
|
msgid "_Import"
|
||||||
msgstr "_İçe Aktar"
|
msgstr "_İçe Aktar"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:399 podcasts-gtk/src/utils.rs:447
|
#: podcasts-gtk/src/utils.rs:409 podcasts-gtk/src/utils.rs:457
|
||||||
msgid "OPML file"
|
msgid "OPML file"
|
||||||
msgstr "OPML dosyası"
|
msgstr "OPML dosyası"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:416
|
#: podcasts-gtk/src/utils.rs:426
|
||||||
msgid "Failed to parse the imported file"
|
msgid "Failed to parse the imported file"
|
||||||
msgstr "İçe aktarılan dosya ayrıştırılamadı"
|
msgstr "İçe aktarılan dosya ayrıştırılamadı"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:421 podcasts-gtk/src/utils.rs:465
|
#: podcasts-gtk/src/utils.rs:431 podcasts-gtk/src/utils.rs:475
|
||||||
msgid "Selected file could not be accessed."
|
msgid "Selected file could not be accessed."
|
||||||
msgstr "Seçilen dosyaya erişilemedi."
|
msgstr "Seçilen dosyaya erişilemedi."
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:435
|
#: podcasts-gtk/src/utils.rs:445
|
||||||
msgid "Export shows to…"
|
msgid "Export shows to…"
|
||||||
msgstr "Gösterileri dışa aktar…"
|
msgstr "Gösterileri dışa aktar…"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:438
|
#: podcasts-gtk/src/utils.rs:448
|
||||||
msgid "_Export"
|
msgid "_Export"
|
||||||
msgstr "_Dışa Aktar"
|
msgstr "_Dışa Aktar"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:439
|
#: podcasts-gtk/src/utils.rs:449
|
||||||
msgid "_Cancel"
|
msgid "_Cancel"
|
||||||
msgstr "_İptal"
|
msgstr "_İptal"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:459
|
#: podcasts-gtk/src/utils.rs:469
|
||||||
msgid "GNOME Podcasts Subscriptions"
|
msgid "GNOME Podcasts Subscriptions"
|
||||||
msgstr "GNOME Podcastler Abonelikleri"
|
msgstr "GNOME Podcastler Abonelikleri"
|
||||||
|
|
||||||
#: podcasts-gtk/src/utils.rs:460
|
#: podcasts-gtk/src/utils.rs:470
|
||||||
msgid "Failed to export podcasts"
|
msgid "Failed to export podcasts"
|
||||||
msgstr "Podcastler dışa aktarılamadı"
|
msgstr "Podcastler dışa aktarılamadı"
|
||||||
|
|
||||||
@@ -409,25 +356,70 @@ msgstr "GNOME Podcastler hakkında daha çoğunu öğrenin"
|
|||||||
|
|
||||||
#: podcasts-gtk/src/widgets/aboutdialog.rs:63
|
#: podcasts-gtk/src/widgets/aboutdialog.rs:63
|
||||||
msgid "translator-credits"
|
msgid "translator-credits"
|
||||||
msgstr "Emin Tufan Çetin <etcetin@gmail.com>"
|
msgstr ""
|
||||||
|
"Emin Tufan Çetin <etcetin@gmail.com>\n"
|
||||||
|
"Sabri Ünal <libreajans@gmail.com>"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/episode.rs:145
|
#: podcasts-gtk/src/widgets/episode.rs:148
|
||||||
msgid "{} min"
|
msgid "{} min"
|
||||||
msgstr "{} dak"
|
msgstr "{} dak"
|
||||||
|
|
||||||
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
#. sender.send(Action::ErrorNotification(format!("Player Error: {}", error)));
|
||||||
#: podcasts-gtk/src/widgets/player.rs:536
|
#: podcasts-gtk/src/widgets/player.rs:534
|
||||||
msgid "The media player was unable to execute an action."
|
msgid "The media player was unable to execute an action."
|
||||||
msgstr "Ortam oynatıcı eylemi yürütemiyor."
|
msgstr "Ortam oynatıcı eylemi yürütemiyor."
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:175
|
#: podcasts-gtk/src/widgets/show_menu.rs:179
|
||||||
msgid "Marked all episodes as listened"
|
msgid "Marked all episodes as listened"
|
||||||
msgstr "Tüm bölümler dinlendi olarak imlendi"
|
msgstr "Tüm bölümler dinlendi olarak imlendi"
|
||||||
|
|
||||||
#: podcasts-gtk/src/widgets/show_menu.rs:180
|
#: podcasts-gtk/src/widgets/show_menu.rs:184
|
||||||
msgid "Unsubscribed from {}"
|
msgid "Unsubscribed from {}"
|
||||||
msgstr "{} aboneliğinden çıkıldı"
|
msgstr "{} aboneliğinden çıkıldı"
|
||||||
|
|
||||||
|
#~ msgid "@icon@"
|
||||||
|
#~ msgstr "@icon@"
|
||||||
|
|
||||||
|
#~ msgid "_Preferences"
|
||||||
|
#~ msgstr "_Tercihler"
|
||||||
|
|
||||||
|
#~ msgid "You are already subscribed to that feed!"
|
||||||
|
#~ msgstr "Bu beslemeye zaten abonesiniz!"
|
||||||
|
|
||||||
|
#~ msgctxt "shortcut window"
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Tercihler"
|
||||||
|
|
||||||
|
#~ msgid "Preferences"
|
||||||
|
#~ msgstr "Tercihler"
|
||||||
|
|
||||||
|
#~ msgid "Appearance"
|
||||||
|
#~ msgstr "Görünüm"
|
||||||
|
|
||||||
|
#~ msgid "Dark Theme"
|
||||||
|
#~ msgstr "Karanlık Gövde"
|
||||||
|
|
||||||
|
#~ msgid "Delete played episodes"
|
||||||
|
#~ msgstr "Oynatılan bölümleri sil"
|
||||||
|
|
||||||
|
#~ msgid "After"
|
||||||
|
#~ msgstr "Şundan Sonra"
|
||||||
|
|
||||||
|
#~ msgid "Seconds"
|
||||||
|
#~ msgstr "Saniye"
|
||||||
|
|
||||||
|
#~ msgid "Minutes"
|
||||||
|
#~ msgstr "Dakika"
|
||||||
|
|
||||||
|
#~ msgid "Hours"
|
||||||
|
#~ msgstr "Saat"
|
||||||
|
|
||||||
|
#~ msgid "Days"
|
||||||
|
#~ msgstr "Gün"
|
||||||
|
|
||||||
|
#~ msgid "Weeks"
|
||||||
|
#~ msgstr "Hafta"
|
||||||
|
|
||||||
#~ msgid "_About"
|
#~ msgid "_About"
|
||||||
#~ msgstr "_Hakkında"
|
#~ msgstr "_Hakkında"
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ Tobias Bernard
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="info_container">
|
<object class="GtkBox" id="info_container">
|
||||||
<property name="width_request">230</property>
|
<property name="width_request">200</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
@@ -76,7 +76,7 @@ Tobias Bernard
|
|||||||
<object class="GtkImage" id="played_checkmark">
|
<object class="GtkImage" id="played_checkmark">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="tooltip_text" translatable="yes">You've already listened to this episode.</property>
|
<property name="tooltip_text" translatable="yes">You’ve already listened to this episode.</property>
|
||||||
<property name="icon_name">object-select-symbolic</property>
|
<property name="icon_name">object-select-symbolic</property>
|
||||||
<style>
|
<style>
|
||||||
<class name="dim-label"/>
|
<class name="dim-label"/>
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Tobias Bernard
|
|||||||
<object class="GtkEntry" id="new_url">
|
<object class="GtkEntry" id="new_url">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="width_chars">30</property>
|
<property name="width_chars">26</property>
|
||||||
<property name="input_purpose">url</property>
|
<property name="input_purpose">url</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
@@ -126,18 +126,6 @@ Tobias Bernard
|
|||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="result_label">
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<property name="label" translatable="yes">You are already subscribed to that feed!</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
|||||||
@@ -0,0 +1,115 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="8" y1="264" x2="120" y2="264" gradientTransform="matrix(1,0,0,1,0,-160.000006)">
|
||||||
|
<stop offset="0" style="stop-color:rgb(64.705884%,11.372549%,17.647059%);stop-opacity:1;"/>
|
||||||
|
<stop offset="0.0343218" style="stop-color:rgb(92.941177%,20%,23.137255%);stop-opacity:1;"/>
|
||||||
|
<stop offset="0.0706241" style="stop-color:rgb(75.294119%,10.980392%,15.686275%);stop-opacity:1;"/>
|
||||||
|
<stop offset="0.927675" style="stop-color:rgb(75.294119%,10.980392%,15.686275%);stop-opacity:1;"/>
|
||||||
|
<stop offset="0.964286" style="stop-color:rgb(92.941177%,20%,23.137255%);stop-opacity:1;"/>
|
||||||
|
<stop offset="1" style="stop-color:rgb(75.294119%,10.980392%,15.686275%);stop-opacity:1;"/>
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath id="clip1">
|
||||||
|
<path d="M 52 62 L 76 62 L 76 74 L 52 74 Z M 52 62 "/>
|
||||||
|
</clipPath>
|
||||||
|
<filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
|
||||||
|
<feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
|
||||||
|
</filter>
|
||||||
|
<mask id="mask0">
|
||||||
|
<g filter="url(#alpha)">
|
||||||
|
<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.5;stroke:none;"/>
|
||||||
|
</g>
|
||||||
|
</mask>
|
||||||
|
<clipPath id="clip2">
|
||||||
|
<rect x="0" y="0" width="192" height="152"/>
|
||||||
|
</clipPath>
|
||||||
|
<g id="surface29618" clip-path="url(#clip2)">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(25.882354%,25.098041%,28.235295%);fill-opacity:1;" d="M 76 84 C 76 99.464844 63.464844 112 48 112 C 32.535156 112 20 99.464844 20 84 C 20 68.535156 32.535156 56 48 56 C 63.464844 56 76 68.535156 76 84 Z M 76 84 "/>
|
||||||
|
</g>
|
||||||
|
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="8" y1="264" x2="120" y2="264" gradientTransform="matrix(1,0,0,1,0,-160.000006)">
|
||||||
|
<stop offset="0" style="stop-color:rgb(64.705884%,11.372549%,17.647059%);stop-opacity:1;"/>
|
||||||
|
<stop offset="0.0343218" style="stop-color:rgb(92.941177%,20%,23.137255%);stop-opacity:1;"/>
|
||||||
|
<stop offset="0.0706241" style="stop-color:rgb(75.294119%,10.980392%,15.686275%);stop-opacity:1;"/>
|
||||||
|
<stop offset="0.927675" style="stop-color:rgb(75.294119%,10.980392%,15.686275%);stop-opacity:1;"/>
|
||||||
|
<stop offset="0.964286" style="stop-color:rgb(92.941177%,20%,23.137255%);stop-opacity:1;"/>
|
||||||
|
<stop offset="1" style="stop-color:rgb(75.294119%,10.980392%,15.686275%);stop-opacity:1;"/>
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath id="clip5">
|
||||||
|
<path d="M 52 62 L 76 62 L 76 74 L 52 74 Z M 52 62 "/>
|
||||||
|
</clipPath>
|
||||||
|
<mask id="mask2">
|
||||||
|
<g filter="url(#alpha)">
|
||||||
|
<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.5;stroke:none;"/>
|
||||||
|
</g>
|
||||||
|
</mask>
|
||||||
|
<clipPath id="clip6">
|
||||||
|
<rect x="0" y="0" width="192" height="152"/>
|
||||||
|
</clipPath>
|
||||||
|
<g id="surface29618" clip-path="url(#clip6)">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(25.882354%,25.098041%,28.235295%);fill-opacity:1;" d="M 76 84 C 76 99.464844 63.464844 112 48 112 C 32.535156 112 20 99.464844 20 84 C 20 68.535156 32.535156 56 48 56 C 63.464844 56 76 68.535156 76 84 Z M 76 84 "/>
|
||||||
|
</g>
|
||||||
|
<clipPath id="clip4">
|
||||||
|
<rect x="0" y="0" width="128" height="128"/>
|
||||||
|
</clipPath>
|
||||||
|
<g id="surface29630" clip-path="url(#clip4)">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 16 92 L 112 92 C 116.417969 92 120 95.582031 120 100 L 120 108 C 120 112.417969 116.417969 116 112 116 L 16 116 C 11.582031 116 8 112.417969 8 108 L 8 100 C 8 95.582031 11.582031 92 16 92 Z M 16 92 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.941177%,20%,23.137255%);fill-opacity:1;" d="M 16 28 L 112 28 C 116.417969 28 120 31.957031 120 36.84375 L 120 103.15625 C 120 108.042969 116.417969 112 112 112 L 16 112 C 11.582031 112 8 108.042969 8 103.15625 L 8 36.84375 C 8 31.957031 11.582031 28 16 28 Z M 16 28 "/>
|
||||||
|
<path style="fill-rule:nonzero;fill:rgb(36.862746%,36.078432%,39.215687%);fill-opacity:1;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(36.862746%,36.078432%,39.215687%);stroke-opacity:1;stroke-miterlimit:4;" d="M 36 281.999994 L 92 281.999994 L 88 271.999994 L 40 271.999994 Z M 36 281.999994 " transform="matrix(1,0,0,1,0,-171.999994)"/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(25.882354%,25.098041%,28.235295%);fill-opacity:1;" d="M 32 110 L 96 110 L 96 116 L 32 116 Z M 32 110 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 24 36 L 104 36 L 112 44 L 112 96 L 16 96 L 16 44 Z M 24 36 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(25.882354%,25.098041%,28.235295%);fill-opacity:1;" d="M 16 52 L 112 52 L 112 84 L 16 84 Z M 16 52 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 46 68 C 46 71.3125 43.3125 74 40 74 C 36.6875 74 34 71.3125 34 68 C 34 64.6875 36.6875 62 40 62 C 43.3125 62 46 64.6875 46 68 Z M 46 68 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 94 68 C 94 71.3125 91.3125 74 88 74 C 84.6875 74 82 71.3125 82 68 C 82 64.6875 84.6875 62 88 62 C 91.3125 62 94 64.6875 94 68 Z M 94 68 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(58.039218%,57.647061%,56.470591%);fill-opacity:1;" d="M 52 62 L 76 62 L 76 74 L 52 74 Z M 52 62 "/>
|
||||||
|
<g clip-path="url(#clip5)" clip-rule="nonzero">
|
||||||
|
<use xlink:href="#surface29618" transform="matrix(1,0,0,1,-8,-16)" mask="url(#mask2)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<clipPath id="clip3">
|
||||||
|
<rect x="0" y="0" width="128" height="128"/>
|
||||||
|
</clipPath>
|
||||||
|
<g id="surface29633" clip-path="url(#clip3)" filter="url(#alpha)">
|
||||||
|
<use xlink:href="#surface29630"/>
|
||||||
|
</g>
|
||||||
|
<mask id="mask1">
|
||||||
|
<use xlink:href="#surface29633"/>
|
||||||
|
</mask>
|
||||||
|
<mask id="mask3">
|
||||||
|
<g filter="url(#alpha)">
|
||||||
|
<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.8;stroke:none;"/>
|
||||||
|
</g>
|
||||||
|
</mask>
|
||||||
|
<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="300" y1="235" x2="428" y2="235" gradientTransform="matrix(0.000000000000000023,0.37,-0.98462,0.00000000000000006,295.38501,-30.360001)">
|
||||||
|
<stop offset="0" style="stop-color:rgb(97.647059%,94.117647%,41.960785%);stop-opacity:1;"/>
|
||||||
|
<stop offset="1" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath id="clip8">
|
||||||
|
<rect x="0" y="0" width="128" height="128"/>
|
||||||
|
</clipPath>
|
||||||
|
<g id="surface29627" clip-path="url(#clip8)">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 128 80.640625 L 128 128 L 0 128 L 0 80.640625 Z M 128 80.640625 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 13.308594 80.640625 L 60.664062 128 L 81.878906 128 L 34.519531 80.640625 Z M 55.730469 80.640625 L 103.09375 128 L 124.308594 128 L 76.945312 80.640625 Z M 98.160156 80.640625 L 128 110.480469 L 128 89.269531 L 119.371094 80.640625 Z M 0 88.546875 L 0 109.761719 L 18.238281 128 L 39.453125 128 Z M 0 88.546875 "/>
|
||||||
|
</g>
|
||||||
|
<clipPath id="clip7">
|
||||||
|
<rect x="0" y="0" width="128" height="128"/>
|
||||||
|
</clipPath>
|
||||||
|
<g id="surface29632" clip-path="url(#clip7)">
|
||||||
|
<use xlink:href="#surface29627" mask="url(#mask3)"/>
|
||||||
|
</g>
|
||||||
|
</defs>
|
||||||
|
<g id="surface29613">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 16 92 L 112 92 C 116.417969 92 120 95.582031 120 100 L 120 108 C 120 112.417969 116.417969 116 112 116 L 16 116 C 11.582031 116 8 112.417969 8 108 L 8 100 C 8 95.582031 11.582031 92 16 92 Z M 16 92 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.941177%,20%,23.137255%);fill-opacity:1;" d="M 16 28 L 112 28 C 116.417969 28 120 31.957031 120 36.84375 L 120 103.15625 C 120 108.042969 116.417969 112 112 112 L 16 112 C 11.582031 112 8 108.042969 8 103.15625 L 8 36.84375 C 8 31.957031 11.582031 28 16 28 Z M 16 28 "/>
|
||||||
|
<path style="fill-rule:nonzero;fill:rgb(36.862746%,36.078432%,39.215687%);fill-opacity:1;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(36.862746%,36.078432%,39.215687%);stroke-opacity:1;stroke-miterlimit:4;" d="M 36 281.999994 L 92 281.999994 L 88 271.999994 L 40 271.999994 Z M 36 281.999994 " transform="matrix(1,0,0,1,0,-171.999994)"/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(25.882354%,25.098041%,28.235295%);fill-opacity:1;" d="M 32 110 L 96 110 L 96 116 L 32 116 Z M 32 110 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 24 36 L 104 36 L 112 44 L 112 96 L 16 96 L 16 44 Z M 24 36 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(25.882354%,25.098041%,28.235295%);fill-opacity:1;" d="M 16 52 L 112 52 L 112 84 L 16 84 Z M 16 52 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 46 68 C 46 71.3125 43.3125 74 40 74 C 36.6875 74 34 71.3125 34 68 C 34 64.6875 36.6875 62 40 62 C 43.3125 62 46 64.6875 46 68 Z M 46 68 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 94 68 C 94 71.3125 91.3125 74 88 74 C 84.6875 74 82 71.3125 82 68 C 82 64.6875 84.6875 62 88 62 C 91.3125 62 94 64.6875 94 68 Z M 94 68 "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(58.039218%,57.647061%,56.470591%);fill-opacity:1;" d="M 52 62 L 76 62 L 76 74 L 52 74 Z M 52 62 "/>
|
||||||
|
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||||
|
<use xlink:href="#surface29618" transform="matrix(1,0,0,1,-8,-16)" mask="url(#mask0)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#surface29632" mask="url(#mask1)"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9.3 KiB |
@@ -3,7 +3,11 @@ scalable_dir = join_paths('hicolor', 'scalable', 'apps')
|
|||||||
install_data(
|
install_data(
|
||||||
join_paths(scalable_dir, 'org.gnome.Podcasts.svg'),
|
join_paths(scalable_dir, 'org.gnome.Podcasts.svg'),
|
||||||
install_dir: join_paths(datadir, 'icons', scalable_dir),
|
install_dir: join_paths(datadir, 'icons', scalable_dir),
|
||||||
rename: '@0@.svg'.format(application_id)
|
)
|
||||||
|
|
||||||
|
install_data(
|
||||||
|
join_paths(scalable_dir, 'org.gnome.Podcasts.Devel.svg'),
|
||||||
|
install_dir: join_paths(datadir, 'icons', scalable_dir),
|
||||||
)
|
)
|
||||||
|
|
||||||
symbolic_dir = join_paths('hicolor', 'symbolic', 'apps')
|
symbolic_dir = join_paths('hicolor', 'symbolic', 'apps')
|
||||||
@@ -12,4 +16,4 @@ install_data(
|
|||||||
join_paths(symbolic_dir, 'org.gnome.Podcasts-symbolic.svg'),
|
join_paths(symbolic_dir, 'org.gnome.Podcasts-symbolic.svg'),
|
||||||
install_dir: join_paths(datadir, 'icons', symbolic_dir),
|
install_dir: join_paths(datadir, 'icons', symbolic_dir),
|
||||||
rename: '@0@-symbolic.svg'.format(application_id)
|
rename: '@0@-symbolic.svg'.format(application_id)
|
||||||
)
|
)
|
||||||
|
|||||||
+229
-332
@@ -20,46 +20,110 @@
|
|||||||
|
|
||||||
#![allow(new_without_default)]
|
#![allow(new_without_default)]
|
||||||
|
|
||||||
use gio::{self, prelude::*, ActionMapExt, SettingsExt};
|
use glib::subclass;
|
||||||
use glib::{self, Variant};
|
use glib::subclass::prelude::*;
|
||||||
|
use glib::translate::*;
|
||||||
|
use glib::{glib_object_impl, glib_object_subclass, glib_object_wrapper, glib_wrapper};
|
||||||
|
|
||||||
|
use gio::subclass::application::ApplicationImplExt;
|
||||||
|
use gio::{self, prelude::*, ActionMapExt, ApplicationFlags, SettingsExt};
|
||||||
|
|
||||||
use gtk;
|
use gtk;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
|
|
||||||
use gettextrs::{bindtextdomain, setlocale, textdomain, LocaleCategory};
|
use gettextrs::{bindtextdomain, setlocale, textdomain, LocaleCategory};
|
||||||
|
|
||||||
use crossbeam_channel::{unbounded, Receiver, Sender};
|
use crossbeam_channel::Receiver;
|
||||||
use fragile::Fragile;
|
use fragile::Fragile;
|
||||||
use podcasts_data::Show;
|
use podcasts_data::Show;
|
||||||
|
|
||||||
use crate::headerbar::Header;
|
use crate::settings;
|
||||||
use crate::settings::{self, WindowGeometry};
|
use crate::stacks::PopulatedState;
|
||||||
use crate::stacks::{Content, PopulatedState};
|
|
||||||
use crate::utils;
|
use crate::utils;
|
||||||
use crate::widgets::about_dialog;
|
|
||||||
use crate::widgets::appnotif::{InAppNotification, SpinnerState, State};
|
use crate::widgets::appnotif::{InAppNotification, SpinnerState, State};
|
||||||
use crate::widgets::player;
|
|
||||||
use crate::widgets::show_menu::{mark_all_notif, remove_show_notif, ShowMenu};
|
use crate::widgets::show_menu::{mark_all_notif, remove_show_notif, ShowMenu};
|
||||||
|
use crate::window::MainWindow;
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::rc::Rc;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use crate::config::{APP_ID, LOCALEDIR};
|
use crate::config::{APP_ID, LOCALEDIR};
|
||||||
use crate::i18n::i18n;
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
/// Creates an action named `name` in the action map `T with the handler `F`
|
pub struct PdApplicationPrivate {
|
||||||
fn action<T, F>(thing: &T, name: &str, action: F)
|
window: RefCell<Option<MainWindow>>,
|
||||||
where
|
settings: RefCell<Option<gio::Settings>>,
|
||||||
T: ActionMapExt,
|
}
|
||||||
for<'r, 's> F: Fn(&'r gio::SimpleAction, &'s Option<Variant>) + 'static,
|
|
||||||
{
|
impl ObjectSubclass for PdApplicationPrivate {
|
||||||
// Create a stateless, parameterless action
|
const NAME: &'static str = "PdApplication";
|
||||||
let act = gio::SimpleAction::new(name, None);
|
type ParentType = gtk::Application;
|
||||||
// Connect the handler
|
type Instance = subclass::simple::InstanceStruct<Self>;
|
||||||
act.connect_activate(action);
|
type Class = subclass::simple::ClassStruct<Self>;
|
||||||
// Add it to the map
|
|
||||||
thing.add_action(&act);
|
glib_object_subclass!();
|
||||||
|
|
||||||
|
fn new() -> Self {
|
||||||
|
Self {
|
||||||
|
window: RefCell::new(None),
|
||||||
|
settings: RefCell::new(None),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ObjectImpl for PdApplicationPrivate {
|
||||||
|
glib_object_impl!();
|
||||||
|
}
|
||||||
|
|
||||||
|
impl gio::subclass::prelude::ApplicationImpl for PdApplicationPrivate {
|
||||||
|
fn activate(&self, app: &gio::Application) {
|
||||||
|
debug!("GtkApplication<PdApplication>::activate");
|
||||||
|
|
||||||
|
if let Some(ref window) = *self.window.borrow() {
|
||||||
|
// Ideally Gtk4/GtkBuilder make this irrelvent
|
||||||
|
window.show_all();
|
||||||
|
window.present();
|
||||||
|
info!("Window presented");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let app = app.clone().downcast::<PdApplication>().expect("How?");
|
||||||
|
let window = MainWindow::new(&app);
|
||||||
|
window.setup_gactions();
|
||||||
|
window.show_all();
|
||||||
|
window.present();
|
||||||
|
self.window.replace(Some(window));
|
||||||
|
// Setup the Action channel
|
||||||
|
gtk::timeout_add(25, clone!(app => move || app.setup_action_channel()));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn startup(&self, app: &gio::Application) {
|
||||||
|
debug!("GtkApplication<PdApplication>::startup");
|
||||||
|
|
||||||
|
self.parent_startup(app);
|
||||||
|
|
||||||
|
let settings = gio::Settings::new("org.gnome.Podcasts");
|
||||||
|
|
||||||
|
let cleanup_date = settings::get_cleanup_date(&settings);
|
||||||
|
// Garbage collect watched episodes from the disk
|
||||||
|
utils::cleanup(cleanup_date);
|
||||||
|
|
||||||
|
self.settings.replace(Some(settings));
|
||||||
|
|
||||||
|
let app = app.clone().downcast::<PdApplication>().expect("How?");
|
||||||
|
app.setup_timed_callbacks();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl gtk::subclass::application::GtkApplicationImpl for PdApplicationPrivate {}
|
||||||
|
|
||||||
|
glib_wrapper! {
|
||||||
|
pub struct PdApplication(Object<subclass::simple::InstanceStruct<PdApplicationPrivate>, subclass::simple::ClassStruct<PdApplicationPrivate>, PdApplicationClass>) @extends gio::Application, gtk::Application;
|
||||||
|
|
||||||
|
match fn {
|
||||||
|
get_type => || PdApplicationPrivate::get_type().to_glib(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
@@ -85,312 +149,168 @@ pub(crate) enum Action {
|
|||||||
RaiseWindow,
|
RaiseWindow,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
impl PdApplication {
|
||||||
pub(crate) struct App {
|
pub(crate) fn new() -> Self {
|
||||||
instance: gtk::Application,
|
let application = glib::Object::new(
|
||||||
window: gtk::ApplicationWindow,
|
PdApplication::static_type(),
|
||||||
overlay: gtk::Overlay,
|
&[
|
||||||
settings: gio::Settings,
|
("application-id", &Some(APP_ID)),
|
||||||
content: Rc<Content>,
|
("flags", &ApplicationFlags::empty()),
|
||||||
headerbar: Rc<Header>,
|
],
|
||||||
player: player::PlayerWrapper,
|
)
|
||||||
updater: RefCell<Option<InAppNotification>>,
|
.expect("Application initialization failed...")
|
||||||
sender: Sender<Action>,
|
.downcast::<PdApplication>()
|
||||||
receiver: Receiver<Action>,
|
.expect("Congrats, you have won a prize for triggering an impossible outcome");
|
||||||
}
|
|
||||||
|
|
||||||
impl App {
|
application.set_resource_base_path(Some("/org/gnome/Podcasts"));
|
||||||
pub(crate) fn new(application: >k::Application) -> Rc<Self> {
|
|
||||||
let settings = gio::Settings::new("org.gnome.Podcasts");
|
|
||||||
|
|
||||||
let (sender, receiver) = unbounded();
|
application
|
||||||
|
|
||||||
let window = gtk::ApplicationWindow::new(application);
|
|
||||||
window.set_title(&i18n("Podcasts"));
|
|
||||||
if APP_ID.ends_with("Devel") {
|
|
||||||
window.get_style_context().add_class("devel");
|
|
||||||
}
|
|
||||||
|
|
||||||
let weak_s = settings.downgrade();
|
|
||||||
let weak_app = application.downgrade();
|
|
||||||
window.connect_delete_event(move |window, _| {
|
|
||||||
let app = match weak_app.upgrade() {
|
|
||||||
Some(a) => a,
|
|
||||||
None => return Inhibit(false),
|
|
||||||
};
|
|
||||||
|
|
||||||
let settings = match weak_s.upgrade() {
|
|
||||||
Some(s) => s,
|
|
||||||
None => return Inhibit(false),
|
|
||||||
};
|
|
||||||
|
|
||||||
info!("Saving window position");
|
|
||||||
WindowGeometry::from_window(&window).write(&settings);
|
|
||||||
|
|
||||||
info!("Application is exiting");
|
|
||||||
app.quit();
|
|
||||||
Inhibit(false)
|
|
||||||
});
|
|
||||||
|
|
||||||
// Create a content instance
|
|
||||||
let content = Content::new(&sender).expect("Content initialization failed.");
|
|
||||||
|
|
||||||
// Create the headerbar
|
|
||||||
let header = Header::new(&content, &sender);
|
|
||||||
// Add the Headerbar to the window.
|
|
||||||
window.set_titlebar(&header.container);
|
|
||||||
|
|
||||||
// Add the content main stack to the overlay.
|
|
||||||
let overlay = gtk::Overlay::new();
|
|
||||||
overlay.add(&content.get_stack());
|
|
||||||
|
|
||||||
let wrap = gtk::Box::new(gtk::Orientation::Vertical, 0);
|
|
||||||
// Add the overlay to the main Box
|
|
||||||
wrap.add(&overlay);
|
|
||||||
|
|
||||||
let player = player::PlayerWrapper::new(&sender);
|
|
||||||
// Add the player to the main Box
|
|
||||||
wrap.add(&player.action_bar);
|
|
||||||
|
|
||||||
let updater = RefCell::new(None);
|
|
||||||
|
|
||||||
window.add(&wrap);
|
|
||||||
|
|
||||||
let app = App {
|
|
||||||
instance: application.clone(),
|
|
||||||
window,
|
|
||||||
settings,
|
|
||||||
overlay,
|
|
||||||
headerbar: header,
|
|
||||||
content,
|
|
||||||
player,
|
|
||||||
updater,
|
|
||||||
sender,
|
|
||||||
receiver,
|
|
||||||
};
|
|
||||||
|
|
||||||
Rc::new(app)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn init(app: &Rc<Self>) {
|
|
||||||
let cleanup_date = settings::get_cleanup_date(&app.settings);
|
|
||||||
// Garbage collect watched episodes from the disk
|
|
||||||
utils::cleanup(cleanup_date);
|
|
||||||
|
|
||||||
app.setup_gactions();
|
|
||||||
app.setup_timed_callbacks();
|
|
||||||
|
|
||||||
// Retrieve the previous window position and size.
|
|
||||||
WindowGeometry::from_settings(&app.settings).apply(&app.window);
|
|
||||||
|
|
||||||
// Setup the Action channel
|
|
||||||
gtk::timeout_add(25, clone!(app => move || app.setup_action_channel()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_timed_callbacks(&self) {
|
fn setup_timed_callbacks(&self) {
|
||||||
self.setup_dark_theme();
|
self.setup_dark_theme();
|
||||||
self.setup_refresh_on_startup();
|
|
||||||
self.setup_auto_refresh();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_dark_theme(&self) {
|
fn setup_dark_theme(&self) {
|
||||||
let gtk_settings = gtk::Settings::get_default().unwrap();
|
let data = PdApplicationPrivate::from_instance(self);
|
||||||
self.settings.bind(
|
if let Some(ref settings) = *data.settings.borrow() {
|
||||||
"dark-theme",
|
let gtk_settings = gtk::Settings::get_default().unwrap();
|
||||||
>k_settings,
|
settings.bind(
|
||||||
"gtk-application-prefer-dark-theme",
|
"dark-theme",
|
||||||
gio::SettingsBindFlags::DEFAULT,
|
>k_settings,
|
||||||
);
|
"gtk-application-prefer-dark-theme",
|
||||||
}
|
gio::SettingsBindFlags::DEFAULT,
|
||||||
|
);
|
||||||
fn setup_refresh_on_startup(&self) {
|
} else {
|
||||||
// Update the feeds right after the Application is initialized.
|
debug_assert!(false, "Well how'd you manage that?");
|
||||||
let sender = self.sender.clone();
|
|
||||||
if self.settings.get_boolean("refresh-on-startup") {
|
|
||||||
info!("Refresh on startup.");
|
|
||||||
let s: Option<Vec<_>> = None;
|
|
||||||
utils::refresh(s, sender.clone());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_auto_refresh(&self) {
|
|
||||||
let refresh_interval = settings::get_refresh_interval(&self.settings).num_seconds() as u32;
|
|
||||||
info!("Auto-refresh every {:?} seconds.", refresh_interval);
|
|
||||||
|
|
||||||
let sender = self.sender.clone();
|
|
||||||
gtk::timeout_add_seconds(refresh_interval, move || {
|
|
||||||
let s: Option<Vec<_>> = None;
|
|
||||||
utils::refresh(s, sender.clone());
|
|
||||||
|
|
||||||
glib::Continue(true)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Define the `GAction`s.
|
|
||||||
///
|
|
||||||
/// Used in menus and the keyboard shortcuts dialog.
|
|
||||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
fn setup_gactions(&self) {
|
|
||||||
let sender = &self.sender;
|
|
||||||
let weak_win = self.window.downgrade();
|
|
||||||
|
|
||||||
// Create the `refresh` action.
|
|
||||||
//
|
|
||||||
// This will trigger a refresh of all the shows in the database.
|
|
||||||
action(&self.window, "refresh", clone!(sender => move |_, _| {
|
|
||||||
gtk::idle_add(clone!(sender => move || {
|
|
||||||
let s: Option<Vec<_>> = None;
|
|
||||||
utils::refresh(s, sender.clone());
|
|
||||||
glib::Continue(false)
|
|
||||||
}));
|
|
||||||
}));
|
|
||||||
self.instance.set_accels_for_action("win.refresh", &["<primary>r"]);
|
|
||||||
|
|
||||||
// Create the `OPML` import action
|
|
||||||
action(&self.window, "import", clone!(sender, weak_win => move |_, _| {
|
|
||||||
weak_win.upgrade().map(|win| utils::on_import_clicked(&win, &sender));
|
|
||||||
}));
|
|
||||||
|
|
||||||
action(&self.window, "export", clone!(sender, weak_win => move |_, _| {
|
|
||||||
weak_win.upgrade().map(|win| utils::on_export_clicked(&win, &sender));
|
|
||||||
}));
|
|
||||||
|
|
||||||
// Create the action that shows a `gtk::AboutDialog`
|
|
||||||
action(&self.window, "about", clone!(weak_win => move |_, _| {
|
|
||||||
weak_win.upgrade().map(|win| about_dialog(&win));
|
|
||||||
}));
|
|
||||||
|
|
||||||
// Create the quit action
|
|
||||||
let weak_instance = self.instance.downgrade();
|
|
||||||
action(&self.window, "quit", move |_, _| {
|
|
||||||
weak_instance.upgrade().map(|app| app.quit());
|
|
||||||
});
|
|
||||||
self.instance.set_accels_for_action("win.quit", &["<primary>q"]);
|
|
||||||
|
|
||||||
// Create the menu action
|
|
||||||
let header = Rc::downgrade(&self.headerbar);
|
|
||||||
action(&self.window, "menu", move |_, _| {
|
|
||||||
header.upgrade().map(|h| h.open_menu());
|
|
||||||
});
|
|
||||||
// Bind the hamburger menu button to `F10`
|
|
||||||
self.instance.set_accels_for_action("win.menu", &["F10"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn setup_action_channel(&self) -> glib::Continue {
|
fn setup_action_channel(&self) -> glib::Continue {
|
||||||
use crossbeam_channel::TryRecvError;
|
use crossbeam_channel::TryRecvError;
|
||||||
|
let data = PdApplicationPrivate::from_instance(self);
|
||||||
|
|
||||||
let action = match self.receiver.try_recv() {
|
if let Some(ref window) = *data.window.borrow() {
|
||||||
Ok(a) => a,
|
let action = match window.receiver.try_recv() {
|
||||||
Err(TryRecvError::Empty) => return glib::Continue(true),
|
Ok(a) => a,
|
||||||
Err(TryRecvError::Disconnected) => {
|
Err(TryRecvError::Empty) => return glib::Continue(true),
|
||||||
unreachable!("How the hell was the action channel dropped.")
|
Err(TryRecvError::Disconnected) => {
|
||||||
}
|
unreachable!("How the hell was the action channel dropped.")
|
||||||
};
|
}
|
||||||
|
};
|
||||||
|
|
||||||
trace!("Incoming channel action: {:?}", action);
|
trace!("Incoming channel action: {:?}", action);
|
||||||
match action {
|
match action {
|
||||||
Action::RefreshAllViews => self.content.update(),
|
Action::RefreshAllViews => window.content.update(),
|
||||||
Action::RefreshShowsView => self.content.update_shows_view(),
|
Action::RefreshShowsView => window.content.update_shows_view(),
|
||||||
Action::RefreshWidgetIfSame(id) => self.content.update_widget_if_same(id),
|
Action::RefreshWidgetIfSame(id) => window.content.update_widget_if_same(id),
|
||||||
Action::RefreshEpisodesView => self.content.update_home(),
|
Action::RefreshEpisodesView => window.content.update_home(),
|
||||||
Action::RefreshEpisodesViewBGR => self.content.update_home_if_background(),
|
Action::RefreshEpisodesViewBGR => window.content.update_home_if_background(),
|
||||||
Action::ReplaceWidget(pd) => {
|
Action::ReplaceWidget(pd) => {
|
||||||
let shows = self.content.get_shows();
|
let shows = window.content.get_shows();
|
||||||
let pop = shows.borrow().populated();
|
let pop = shows.borrow().populated();
|
||||||
pop.borrow_mut()
|
pop.borrow_mut()
|
||||||
.replace_widget(pd.clone())
|
.replace_widget(pd.clone())
|
||||||
.map_err(|err| error!("Failed to update ShowWidget: {}", err))
|
.map_err(|err| error!("Failed to update ShowWidget: {}", err))
|
||||||
.map_err(|_| error!("Failed to update ShowWidget {}", pd.title()))
|
.map_err(|_| error!("Failed to update ShowWidget {}", pd.title()))
|
||||||
.ok();
|
.ok();
|
||||||
}
|
}
|
||||||
Action::ShowWidgetAnimated => {
|
Action::ShowWidgetAnimated => {
|
||||||
let shows = self.content.get_shows();
|
let shows = window.content.get_shows();
|
||||||
let pop = shows.borrow().populated();
|
let pop = shows.borrow().populated();
|
||||||
pop.borrow_mut()
|
pop.borrow_mut().switch_visible(
|
||||||
.switch_visible(PopulatedState::Widget, gtk::StackTransitionType::SlideLeft);
|
PopulatedState::Widget,
|
||||||
}
|
gtk::StackTransitionType::SlideLeft,
|
||||||
Action::ShowShowsAnimated => {
|
);
|
||||||
let shows = self.content.get_shows();
|
}
|
||||||
let pop = shows.borrow().populated();
|
Action::ShowShowsAnimated => {
|
||||||
pop.borrow_mut()
|
let shows = window.content.get_shows();
|
||||||
.switch_visible(PopulatedState::View, gtk::StackTransitionType::SlideRight);
|
let pop = shows.borrow().populated();
|
||||||
}
|
pop.borrow_mut()
|
||||||
Action::HeaderBarShowTile(title) => self.headerbar.switch_to_back(&title),
|
.switch_visible(PopulatedState::View, gtk::StackTransitionType::SlideRight);
|
||||||
Action::HeaderBarNormal => self.headerbar.switch_to_normal(),
|
}
|
||||||
Action::MarkAllPlayerNotification(pd) => {
|
Action::HeaderBarShowTile(title) => window.headerbar.switch_to_back(&title),
|
||||||
let notif = mark_all_notif(pd, &self.sender);
|
Action::HeaderBarNormal => window.headerbar.switch_to_normal(),
|
||||||
notif.show(&self.overlay);
|
Action::MarkAllPlayerNotification(pd) => {
|
||||||
}
|
let notif = mark_all_notif(pd, &window.sender);
|
||||||
Action::RemoveShow(pd) => {
|
notif.show(&window.overlay);
|
||||||
let notif = remove_show_notif(pd, self.sender.clone());
|
}
|
||||||
notif.show(&self.overlay);
|
Action::RemoveShow(pd) => {
|
||||||
}
|
let notif = remove_show_notif(pd, window.sender.clone());
|
||||||
Action::ErrorNotification(err) => {
|
notif.show(&window.overlay);
|
||||||
error!("An error notification was triggered: {}", err);
|
}
|
||||||
let callback = |revealer: gtk::Revealer| {
|
Action::ErrorNotification(err) => {
|
||||||
revealer.set_reveal_child(false);
|
error!("An error notification was triggered: {}", err);
|
||||||
glib::Continue(false)
|
let callback = |revealer: gtk::Revealer| {
|
||||||
};
|
|
||||||
let undo_cb: Option<fn()> = None;
|
|
||||||
let notif = InAppNotification::new(&err, 6000, callback, undo_cb);
|
|
||||||
notif.show(&self.overlay);
|
|
||||||
}
|
|
||||||
Action::ShowUpdateNotif(receiver) => {
|
|
||||||
let sender = self.sender.clone();
|
|
||||||
let callback = move |revealer: gtk::Revealer| match receiver.try_recv() {
|
|
||||||
Err(TryRecvError::Empty) => glib::Continue(true),
|
|
||||||
Err(TryRecvError::Disconnected) => glib::Continue(false),
|
|
||||||
Ok(_) => {
|
|
||||||
revealer.set_reveal_child(false);
|
revealer.set_reveal_child(false);
|
||||||
sender
|
|
||||||
.send(Action::RefreshAllViews)
|
|
||||||
.expect("Action channel blew up somehow");
|
|
||||||
glib::Continue(false)
|
glib::Continue(false)
|
||||||
}
|
};
|
||||||
};
|
let undo_cb: Option<fn()> = None;
|
||||||
let txt = i18n("Fetching new episodes");
|
let notif = InAppNotification::new(&err, 6000, callback, undo_cb);
|
||||||
let undo_cb: Option<fn()> = None;
|
notif.show(&window.overlay);
|
||||||
let updater = InAppNotification::new(&txt, 250, callback, undo_cb);
|
}
|
||||||
updater.set_close_state(State::Hidden);
|
Action::ShowUpdateNotif(receiver) => {
|
||||||
updater.set_spinner_state(SpinnerState::Active);
|
let sender = window.sender.clone();
|
||||||
|
let callback = move |revealer: gtk::Revealer| match receiver.try_recv() {
|
||||||
|
Err(TryRecvError::Empty) => glib::Continue(true),
|
||||||
|
Err(TryRecvError::Disconnected) => glib::Continue(false),
|
||||||
|
Ok(_) => {
|
||||||
|
revealer.set_reveal_child(false);
|
||||||
|
sender
|
||||||
|
.send(Action::RefreshAllViews)
|
||||||
|
.expect("Action channel blew up somehow");
|
||||||
|
glib::Continue(false)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let txt = i18n("Fetching new episodes");
|
||||||
|
let undo_cb: Option<fn()> = None;
|
||||||
|
let updater = InAppNotification::new(&txt, 250, callback, undo_cb);
|
||||||
|
updater.set_close_state(State::Hidden);
|
||||||
|
updater.set_spinner_state(SpinnerState::Active);
|
||||||
|
|
||||||
let old = self.updater.replace(Some(updater));
|
let old = window.updater.replace(Some(updater));
|
||||||
old.map(|i| i.destroy());
|
old.map(|i| i.destroy());
|
||||||
self.updater
|
window
|
||||||
.borrow()
|
.updater
|
||||||
.as_ref()
|
.borrow()
|
||||||
.map(|i| i.show(&self.overlay));
|
.as_ref()
|
||||||
}
|
.map(|i| i.show(&window.overlay));
|
||||||
Action::InitEpisode(rowid) => {
|
}
|
||||||
let res = self.player.initialize_episode(rowid);
|
Action::InitEpisode(rowid) => {
|
||||||
debug_assert!(res.is_ok());
|
let res = window.player.initialize_episode(rowid);
|
||||||
}
|
debug_assert!(res.is_ok());
|
||||||
Action::InitShowMenu(s) => {
|
}
|
||||||
let menu = &s.get().container;
|
Action::InitShowMenu(s) => {
|
||||||
self.headerbar.set_secondary_menu(menu);
|
let menu = &s.get().container;
|
||||||
}
|
window.headerbar.set_secondary_menu(menu);
|
||||||
Action::EmptyState => {
|
}
|
||||||
self.window
|
Action::EmptyState => {
|
||||||
.lookup_action("refresh")
|
window
|
||||||
.and_then(|action| action.downcast::<gio::SimpleAction>().ok())
|
.window
|
||||||
// Disable refresh action
|
.lookup_action("refresh")
|
||||||
.map(|action| action.set_enabled(false));
|
.and_then(|action| action.downcast::<gio::SimpleAction>().ok())
|
||||||
|
// Disable refresh action
|
||||||
|
.map(|action| action.set_enabled(false));
|
||||||
|
|
||||||
self.headerbar.switch.set_sensitive(false);
|
window.headerbar.switch.set_sensitive(false);
|
||||||
self.content.switch_to_empty_views();
|
window.content.switch_to_empty_views();
|
||||||
}
|
}
|
||||||
Action::PopulatedState => {
|
Action::PopulatedState => {
|
||||||
self.window
|
window
|
||||||
.lookup_action("refresh")
|
.window
|
||||||
.and_then(|action| action.downcast::<gio::SimpleAction>().ok())
|
.lookup_action("refresh")
|
||||||
// Enable refresh action
|
.and_then(|action| action.downcast::<gio::SimpleAction>().ok())
|
||||||
.map(|action| action.set_enabled(true));
|
// Enable refresh action
|
||||||
|
.map(|action| action.set_enabled(true));
|
||||||
|
|
||||||
self.headerbar.switch.set_sensitive(true);
|
window.headerbar.switch.set_sensitive(true);
|
||||||
self.content.switch_to_populated();
|
window.content.switch_to_populated();
|
||||||
}
|
}
|
||||||
Action::RaiseWindow => self.window.present(),
|
Action::RaiseWindow => window.window.present(),
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
debug_assert!(false, "Huh that's odd then");
|
||||||
|
}
|
||||||
|
|
||||||
glib::Continue(true)
|
glib::Continue(true)
|
||||||
}
|
}
|
||||||
@@ -401,33 +321,10 @@ impl App {
|
|||||||
bindtextdomain("gnome-podcasts", LOCALEDIR);
|
bindtextdomain("gnome-podcasts", LOCALEDIR);
|
||||||
textdomain("gnome-podcasts");
|
textdomain("gnome-podcasts");
|
||||||
|
|
||||||
let application = gtk::Application::new(APP_ID, gio::ApplicationFlags::empty())
|
// Make sure the app icon shows up in PulseAudio settings
|
||||||
.expect("Application initialization failed...");
|
env::set_var("PULSE_PROP_application.icon_name", APP_ID);
|
||||||
application.set_resource_base_path("/org/gnome/Podcasts");
|
|
||||||
|
|
||||||
let weak_app = application.downgrade();
|
let application = Self::new();
|
||||||
application.connect_startup(move |_| {
|
|
||||||
info!("GApplication::startup");
|
|
||||||
weak_app.upgrade().map(|application| {
|
|
||||||
let app = Self::new(&application);
|
|
||||||
Self::init(&app);
|
|
||||||
|
|
||||||
let weak = Rc::downgrade(&app);
|
|
||||||
application.connect_activate(move |_| {
|
|
||||||
info!("GApplication::activate");
|
|
||||||
if let Some(app) = weak.upgrade() {
|
|
||||||
// Ideally Gtk4/GtkBuilder make this irrelvent
|
|
||||||
app.window.show_all();
|
|
||||||
app.window.present();
|
|
||||||
info!("Window presented");
|
|
||||||
} else {
|
|
||||||
debug_assert!(false, "I hate computers");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
info!("Init complete");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Weird magic I copy-pasted that sets the Application Name in the Shell.
|
// Weird magic I copy-pasted that sets the Application Name in the Shell.
|
||||||
glib::set_application_name(&i18n("Podcasts"));
|
glib::set_application_name(&i18n("Podcasts"));
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ pub(crate) struct Header {
|
|||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
struct AddPopover {
|
struct AddPopover {
|
||||||
container: gtk::Popover,
|
container: gtk::Popover,
|
||||||
result: gtk::Label,
|
|
||||||
entry: gtk::Entry,
|
entry: gtk::Entry,
|
||||||
add: gtk::Button,
|
add: gtk::Button,
|
||||||
toggle: gtk::MenuButton,
|
toggle: gtk::MenuButton,
|
||||||
@@ -97,6 +96,7 @@ impl AddPopover {
|
|||||||
.entry
|
.entry
|
||||||
.get_text()
|
.get_text()
|
||||||
.ok_or_else(|| format_err!("GtkEntry blew up somehow."))?;
|
.ok_or_else(|| format_err!("GtkEntry blew up somehow."))?;
|
||||||
|
let is_input_url_empty = url.is_empty();
|
||||||
debug!("Url: {}", url);
|
debug!("Url: {}", url);
|
||||||
|
|
||||||
if !(url.starts_with("https://") || url.starts_with("http://")) {
|
if !(url.starts_with("https://") || url.starts_with("http://")) {
|
||||||
@@ -104,34 +104,63 @@ impl AddPopover {
|
|||||||
};
|
};
|
||||||
|
|
||||||
debug!("Url: {}", url);
|
debug!("Url: {}", url);
|
||||||
// TODO: refactor to avoid duplication
|
|
||||||
match Url::parse(&url) {
|
match Url::parse(&url) {
|
||||||
Ok(u) => {
|
Ok(u) => {
|
||||||
if !dbqueries::source_exists(u.as_str())? {
|
if !dbqueries::source_exists(u.as_str())? {
|
||||||
self.add.set_sensitive(true);
|
self.style_neutral(true);
|
||||||
self.result.hide();
|
|
||||||
self.result.set_label("");
|
|
||||||
} else {
|
} else {
|
||||||
self.add.set_sensitive(false);
|
self.style_error("You are already subscribed to this show");
|
||||||
self.result
|
|
||||||
.set_label(i18n("You are already subscribed to this show").as_str());
|
|
||||||
self.result.show();
|
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
self.add.set_sensitive(false);
|
if !is_input_url_empty {
|
||||||
if !url.is_empty() {
|
self.style_error("Invalid URL");
|
||||||
self.result.set_label(i18n("Invalid URL").as_str());
|
|
||||||
self.result.show();
|
|
||||||
error!("Error: {}", err);
|
error!("Error: {}", err);
|
||||||
} else {
|
} else {
|
||||||
self.result.hide();
|
self.style_neutral(false);
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn style_error(&self, icon_tooltip: &str) {
|
||||||
|
self.style(
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
Some("dialog-error-symbolic"),
|
||||||
|
Some(icon_tooltip),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn style_neutral(&self, sensitive: bool) {
|
||||||
|
self.style(false, sensitive, None, None);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn style(
|
||||||
|
&self,
|
||||||
|
error: bool,
|
||||||
|
sensitive: bool,
|
||||||
|
icon_name: Option<&str>,
|
||||||
|
icon_tooltip: Option<&str>,
|
||||||
|
) {
|
||||||
|
let entry = &self.entry;
|
||||||
|
let icon_position = gtk::EntryIconPosition::Secondary;
|
||||||
|
entry.set_icon_from_icon_name(icon_position, icon_name);
|
||||||
|
if let Some(icon_tooltip_text) = icon_tooltip {
|
||||||
|
entry.set_icon_tooltip_text(icon_position, Some(i18n(icon_tooltip_text).as_str()));
|
||||||
|
}
|
||||||
|
self.add.set_sensitive(sensitive);
|
||||||
|
|
||||||
|
let error_style_class = >k::STYLE_CLASS_ERROR;
|
||||||
|
let style_context = entry.get_style_context();
|
||||||
|
if error {
|
||||||
|
style_context.add_class(error_style_class);
|
||||||
|
} else {
|
||||||
|
style_context.remove_class(error_style_class);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Header {
|
impl Default for Header {
|
||||||
@@ -156,13 +185,11 @@ impl Default for Header {
|
|||||||
let add_popover = builder.get_object("add_popover").unwrap();
|
let add_popover = builder.get_object("add_popover").unwrap();
|
||||||
let new_url = builder.get_object("new_url").unwrap();
|
let new_url = builder.get_object("new_url").unwrap();
|
||||||
let add_button = builder.get_object("add_button").unwrap();
|
let add_button = builder.get_object("add_button").unwrap();
|
||||||
let result = builder.get_object("result_label").unwrap();
|
|
||||||
let add = AddPopover {
|
let add = AddPopover {
|
||||||
container: add_popover,
|
container: add_popover,
|
||||||
entry: new_url,
|
entry: new_url,
|
||||||
toggle: add_toggle,
|
toggle: add_toggle,
|
||||||
add: add_button,
|
add: add_button,
|
||||||
result,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Header {
|
Header {
|
||||||
@@ -188,7 +215,7 @@ impl Header {
|
|||||||
pub(crate) fn init(s: &Rc<Self>, content: &Content, sender: &Sender<Action>) {
|
pub(crate) fn init(s: &Rc<Self>, content: &Content, sender: &Sender<Action>) {
|
||||||
let weak = Rc::downgrade(s);
|
let weak = Rc::downgrade(s);
|
||||||
|
|
||||||
s.switch.set_stack(&content.get_stack());
|
s.switch.set_stack(Some(&content.get_stack()));
|
||||||
|
|
||||||
s.add.entry.connect_changed(clone!(weak => move |_| {
|
s.add.entry.connect_changed(clone!(weak => move |_| {
|
||||||
weak.upgrade().map(|h| {
|
weak.upgrade().map(|h| {
|
||||||
|
|||||||
@@ -41,7 +41,6 @@
|
|||||||
elided_lifetime_in_paths,
|
elided_lifetime_in_paths,
|
||||||
missing_copy_implementations
|
missing_copy_implementations
|
||||||
)]
|
)]
|
||||||
// #![deny(warnings)]
|
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate failure;
|
extern crate failure;
|
||||||
@@ -60,7 +59,7 @@ use log::Level;
|
|||||||
|
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
|
|
||||||
// http://gtk-rs.org/tuto/closures
|
// https://gtk-rs.org/docs-src/tutorial/closures
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! clone {
|
macro_rules! clone {
|
||||||
(@param _) => ( _ );
|
(@param _) => ( _ );
|
||||||
@@ -85,6 +84,7 @@ mod widgets;
|
|||||||
mod app;
|
mod app;
|
||||||
mod config;
|
mod config;
|
||||||
mod headerbar;
|
mod headerbar;
|
||||||
|
mod window;
|
||||||
|
|
||||||
mod manager;
|
mod manager;
|
||||||
mod settings;
|
mod settings;
|
||||||
@@ -93,7 +93,7 @@ mod utils;
|
|||||||
|
|
||||||
mod i18n;
|
mod i18n;
|
||||||
|
|
||||||
use crate::app::App;
|
use crate::app::PdApplication;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
fn init_gtk_tests() -> Result<(), failure::Error> {
|
fn init_gtk_tests() -> Result<(), failure::Error> {
|
||||||
@@ -111,7 +111,7 @@ fn init_gtk_tests() -> Result<(), failure::Error> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// TODO: make the the logger a cli -vv option
|
// TODO: make the logger a cli -vv option
|
||||||
loggerv::init_with_level(Level::Info).expect("Error initializing loggerv.");
|
loggerv::init_with_level(Level::Info).expect("Error initializing loggerv.");
|
||||||
gtk::init().expect("Error initializing gtk.");
|
gtk::init().expect("Error initializing gtk.");
|
||||||
gst::init().expect("Error initializing gstreamer");
|
gst::init().expect("Error initializing gstreamer");
|
||||||
@@ -126,7 +126,7 @@ fn main() {
|
|||||||
600,
|
600,
|
||||||
);
|
);
|
||||||
|
|
||||||
App::run();
|
PdApplication::run();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
@@ -0,0 +1,89 @@
|
|||||||
|
// main_stack.rs
|
||||||
|
//
|
||||||
|
// Copyright 2019 Jordan Petridis <jpetridis@gnome.org>
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
#![allow(unused)]
|
||||||
|
|
||||||
|
use crossbeam_channel::Sender;
|
||||||
|
use failure::Error;
|
||||||
|
|
||||||
|
use crate::app::Action;
|
||||||
|
|
||||||
|
use std::cell::RefCell;
|
||||||
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
|
use gtk::{self, prelude::*};
|
||||||
|
|
||||||
|
use crate:: widgets::{EpisodeWidget, EmptyView, ShowWidget, HomeView, ShowsView};
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy)]
|
||||||
|
pub (crate) enum State {
|
||||||
|
Empty, // Empty view in case you are not subbed into any shows
|
||||||
|
Home, // ListBox with the latests episodes
|
||||||
|
ShowsFlwobox, // Flowbox to browse all the shows you are subbed
|
||||||
|
ShowDetails, // 2 States, either empty or episodes list
|
||||||
|
EpisodeDetails, // WebView that shows the html description
|
||||||
|
DisoverView, // Way into the future view ??
|
||||||
|
}
|
||||||
|
|
||||||
|
struct StackWrapper {
|
||||||
|
state: State,
|
||||||
|
stack: gtk::Stack,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct PodcastsStack {
|
||||||
|
sender: Sender<Action>,
|
||||||
|
stack: StackWrapper,
|
||||||
|
empty_view: Rc<EmptyView>,
|
||||||
|
home: Rc<HomeView>,
|
||||||
|
shows_flowbox: Rc<ShowsView>,
|
||||||
|
show_details: Rc<ShowWidget>,
|
||||||
|
// episdoe: Rc<EpisodeDetails>,
|
||||||
|
// discover: unimplemented!(),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PodcastsStack {
|
||||||
|
fn new(sender: Sender<Action>) -> Self {
|
||||||
|
let stack = StackWrapper {
|
||||||
|
state: State::Empty,
|
||||||
|
stack: gtk::Stack::new(),
|
||||||
|
};
|
||||||
|
|
||||||
|
let empty = Rc::new(EmptyView::default());
|
||||||
|
let home = HomeView::new(sender.clone(), None).expect("Could not create a HomeView");
|
||||||
|
let shows = ShowsView::new(sender.clone(), None);
|
||||||
|
let show = Rc::new(ShowWidget::default());
|
||||||
|
// let episode = EpisodeDetails::default();
|
||||||
|
|
||||||
|
// stack.add_titled(&home.borrow().get_stack(), "home", &i18n("New"));
|
||||||
|
// stack.add_titled(&shows.borrow().get_stack(), "shows", &i18n("Shows"));
|
||||||
|
|
||||||
|
PodcastsStack {
|
||||||
|
sender,
|
||||||
|
stack,
|
||||||
|
empty_view: empty,
|
||||||
|
home,
|
||||||
|
shows_flowbox: shows,
|
||||||
|
show_details: show,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -100,11 +100,11 @@ impl ShowStack {
|
|||||||
if is_episodes_populated(&ign)? {
|
if is_episodes_populated(&ign)? {
|
||||||
self.sender
|
self.sender
|
||||||
.send(Action::PopulatedState)
|
.send(Action::PopulatedState)
|
||||||
.expect("Action channel blew up somehow");;
|
.expect("Action channel blew up somehow");
|
||||||
} else {
|
} else {
|
||||||
self.sender
|
self.sender
|
||||||
.send(Action::EmptyState)
|
.send(Action::EmptyState)
|
||||||
.expect("Action channel blew up somehow");;
|
.expect("Action channel blew up somehow");
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
#![cfg_attr(feature = "cargo-clippy", allow(type_complexity))]
|
#![cfg_attr(feature = "cargo-clippy", allow(type_complexity))]
|
||||||
|
|
||||||
use gdk::FrameClockExt;
|
|
||||||
use gdk_pixbuf::{Object, Pixbuf};
|
use gdk_pixbuf::{Object, Pixbuf};
|
||||||
use glib::{self, object::WeakRef};
|
use glib::{self, object::WeakRef};
|
||||||
use gtk;
|
use gtk;
|
||||||
@@ -155,10 +154,10 @@ pub(crate) fn smooth_scroll_to(view: >k::ScrolledWindow, target: >k::Adjustm
|
|||||||
let mut t = (now - start_time) as f64 / (end_time - start_time) as f64;
|
let mut t = (now - start_time) as f64 / (end_time - start_time) as f64;
|
||||||
t = ease_out_cubic(t);
|
t = ease_out_cubic(t);
|
||||||
adj.set_value(start + t * (end - start));
|
adj.set_value(start + t * (end - start));
|
||||||
true
|
Continue(true)
|
||||||
} else {
|
} else {
|
||||||
adj.set_value(end);
|
adj.set_value(end);
|
||||||
false
|
Continue(false)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -252,7 +251,7 @@ where
|
|||||||
|
|
||||||
up_sender
|
up_sender
|
||||||
.send(true)
|
.send(true)
|
||||||
.expect("Channel was dropped unexpectedly");;
|
.expect("Channel was dropped unexpectedly");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,7 +284,7 @@ pub(crate) fn set_image_from_path(
|
|||||||
.and_then(|fragile| {
|
.and_then(|fragile| {
|
||||||
fragile
|
fragile
|
||||||
.try_get()
|
.try_get()
|
||||||
.map(|px| image.set_from_pixbuf(px))
|
.map(|px| image.set_from_pixbuf(Some(px)))
|
||||||
.map_err(From::from)
|
.map_err(From::from)
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
@@ -343,13 +342,13 @@ pub(crate) fn set_image_from_path(
|
|||||||
if let Ok(mut hashmap) = CACHED_PIXBUFS.write() {
|
if let Ok(mut hashmap) = CACHED_PIXBUFS.write() {
|
||||||
hashmap
|
hashmap
|
||||||
.insert((show_id, size), Mutex::new(Fragile::new(px.clone())));
|
.insert((show_id, size), Mutex::new(Fragile::new(px.clone())));
|
||||||
image.set_from_pixbuf(&px);
|
image.set_from_pixbuf(Some(&px));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(DownloadError::NoImageLocation) => {
|
Err(DownloadError::NoImageLocation) => {
|
||||||
image.set_from_icon_name(
|
image.set_from_icon_name(
|
||||||
"image-x-generic-symbolic",
|
Some("image-x-generic-symbolic"),
|
||||||
gtk::IconSize::__Unknown(s),
|
gtk::IconSize::__Unknown(s),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -431,7 +430,7 @@ pub(crate) fn on_import_clicked(window: >k::ApplicationWindow, sender: &Sender
|
|||||||
let text = i18n("Selected file could not be accessed.");
|
let text = i18n("Selected file could not be accessed.");
|
||||||
sender
|
sender
|
||||||
.send(Action::ErrorNotification(text))
|
.send(Action::ErrorNotification(text))
|
||||||
.expect("Action channel blew up somehow");;
|
.expect("Action channel blew up somehow");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -475,7 +474,7 @@ pub(crate) fn on_export_clicked(window: >k::ApplicationWindow, sender: &Sender
|
|||||||
let text = i18n("Selected file could not be accessed.");
|
let text = i18n("Selected file could not be accessed.");
|
||||||
sender
|
sender
|
||||||
.send(Action::ErrorNotification(text))
|
.send(Action::ErrorNotification(text))
|
||||||
.expect("Action channel blew up somehow");;
|
.expect("Action channel blew up somehow");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,20 +47,20 @@ pub(crate) fn about_dialog(window: >k::ApplicationWindow) {
|
|||||||
];
|
];
|
||||||
|
|
||||||
let dialog = gtk::AboutDialog::new();
|
let dialog = gtk::AboutDialog::new();
|
||||||
dialog.set_logo_icon_name(APP_ID);
|
dialog.set_logo_icon_name(Some(APP_ID));
|
||||||
dialog.set_comments(i18n("Podcast Client for the GNOME Desktop.").as_str());
|
dialog.set_comments(Some(i18n("Podcast Client for the GNOME Desktop.").as_str()));
|
||||||
dialog.set_copyright("© 2017, 2018 Jordan Petridis");
|
dialog.set_copyright(Some("© 2017, 2018 Jordan Petridis"));
|
||||||
dialog.set_license_type(gtk::License::Gpl30);
|
dialog.set_license_type(gtk::License::Gpl30);
|
||||||
dialog.set_modal(true);
|
dialog.set_modal(true);
|
||||||
dialog.set_version(VERSION);
|
dialog.set_version(Some(VERSION));
|
||||||
dialog.set_program_name(&i18n("Podcasts"));
|
dialog.set_program_name(&i18n("Podcasts"));
|
||||||
dialog.set_website("https://wiki.gnome.org/Apps/Podcasts");
|
dialog.set_website(Some("https://wiki.gnome.org/Apps/Podcasts"));
|
||||||
dialog.set_website_label(i18n("Learn more about GNOME Podcasts").as_str());
|
dialog.set_website_label(Some(i18n("Learn more about GNOME Podcasts").as_str()));
|
||||||
dialog.set_transient_for(window);
|
dialog.set_transient_for(Some(window));
|
||||||
|
|
||||||
dialog.set_artists(&["Tobias Bernard", "Sam Hewitt"]);
|
dialog.set_artists(&["Tobias Bernard", "Sam Hewitt"]);
|
||||||
dialog.set_authors(authors);
|
dialog.set_authors(authors);
|
||||||
dialog.set_translator_credits(i18n("translator-credits").as_str());
|
dialog.set_translator_credits(Some(i18n("translator-credits").as_str()));
|
||||||
|
|
||||||
dialog.connect_response(|dlg, _| dlg.destroy());
|
dialog.connect_response(|dlg, _| dlg.destroy());
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ impl Default for EmptyView {
|
|||||||
let view: gtk::Box = builder.get_object("empty_view").unwrap();
|
let view: gtk::Box = builder.get_object("empty_view").unwrap();
|
||||||
let image: gtk::Image = builder.get_object("image").unwrap();
|
let image: gtk::Image = builder.get_object("image").unwrap();
|
||||||
image.set_from_icon_name(
|
image.set_from_icon_name(
|
||||||
format!("{}-symbolic", APP_ID).as_str(),
|
Some(format!("{}-symbolic", APP_ID).as_str()),
|
||||||
gtk::IconSize::__Unknown(256),
|
gtk::IconSize::__Unknown(256),
|
||||||
);
|
);
|
||||||
EmptyView(view)
|
EmptyView(view)
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ use podcasts_data::{dbqueries, USER_AGENT};
|
|||||||
use podcasts_data::{EpisodeWidgetModel, ShowCoverModel};
|
use podcasts_data::{EpisodeWidgetModel, ShowCoverModel};
|
||||||
|
|
||||||
use crate::app::Action;
|
use crate::app::Action;
|
||||||
|
use crate::config::APP_ID;
|
||||||
use crate::utils::set_image_from_path;
|
use crate::utils::set_image_from_path;
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
@@ -94,12 +95,12 @@ impl PlayerInfo {
|
|||||||
|
|
||||||
fn set_episode_title(&self, episode: &EpisodeWidgetModel) {
|
fn set_episode_title(&self, episode: &EpisodeWidgetModel) {
|
||||||
self.episode.set_text(episode.title());
|
self.episode.set_text(episode.title());
|
||||||
self.episode.set_tooltip_text(episode.title());
|
self.episode.set_tooltip_text(Some(episode.title()));
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_show_title(&self, show: &ShowCoverModel) {
|
fn set_show_title(&self, show: &ShowCoverModel) {
|
||||||
self.show.set_text(show.title());
|
self.show.set_text(show.title());
|
||||||
self.show.set_tooltip_text(show.title());
|
self.show.set_tooltip_text(Some(show.title()));
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_cover_image(&self, show: &ShowCoverModel) {
|
fn set_cover_image(&self, show: &ShowCoverModel) {
|
||||||
@@ -213,9 +214,9 @@ impl Default for PlayerWidget {
|
|||||||
);
|
);
|
||||||
|
|
||||||
let mpris = MprisPlayer::new(
|
let mpris = MprisPlayer::new(
|
||||||
"Podcasts".to_string(),
|
APP_ID.to_string(),
|
||||||
"GNOME Podcasts".to_string(),
|
"GNOME Podcasts".to_string(),
|
||||||
"org.gnome.Podcasts.desktop".to_string(),
|
format!("{}.desktop", APP_ID).to_string(),
|
||||||
);
|
);
|
||||||
mpris.set_can_raise(true);
|
mpris.set_can_raise(true);
|
||||||
mpris.set_can_play(false);
|
mpris.set_can_play(false);
|
||||||
@@ -323,12 +324,12 @@ impl PlayerWidget {
|
|||||||
// path is an absolute fs path ex. "foo/bar/baz".
|
// path is an absolute fs path ex. "foo/bar/baz".
|
||||||
// Convert it so it will have a "file:///"
|
// Convert it so it will have a "file:///"
|
||||||
// FIXME: convert it properly
|
// FIXME: convert it properly
|
||||||
if let Some(uri) = File::new_for_path(path).get_uri() {
|
let uri = File::new_for_path(path).get_uri();
|
||||||
// play the file
|
// play the file
|
||||||
self.player.set_uri(&uri);
|
self.player.set_uri(uri.as_str());
|
||||||
self.play();
|
self.rate.radio_normal.set_active(true);
|
||||||
return Ok(());
|
self.play();
|
||||||
}
|
return Ok(());
|
||||||
}
|
}
|
||||||
// TODO: log an error
|
// TODO: log an error
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,8 +99,6 @@ fn populate_flowbox(shows: &Rc<ShowsView>, vadj: Option<Adjustment>) -> Result<(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn on_child_activate(child: >k::FlowBoxChild, sender: &Sender<Action>) -> Result<(), Error> {
|
fn on_child_activate(child: >k::FlowBoxChild, sender: &Sender<Action>) -> Result<(), Error> {
|
||||||
use gtk::WidgetExt;
|
|
||||||
|
|
||||||
// This is such an ugly hack...
|
// This is such an ugly hack...
|
||||||
let id = WidgetExt::get_name(child)
|
let id = WidgetExt::get_name(child)
|
||||||
.ok_or_else(|| format_err!("Failed to get \"episodes\" child from the stack."))?
|
.ok_or_else(|| format_err!("Failed to get \"episodes\" child from the stack."))?
|
||||||
@@ -128,7 +126,7 @@ struct ShowsChild {
|
|||||||
impl Default for ShowsChild {
|
impl Default for ShowsChild {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
let cover = gtk::Image::new_from_icon_name(
|
let cover = gtk::Image::new_from_icon_name(
|
||||||
"image-x-generic-symbolic",
|
Some("image-x-generic-symbolic"),
|
||||||
gtk::IconSize::__Unknown(-1),
|
gtk::IconSize::__Unknown(-1),
|
||||||
);
|
);
|
||||||
let child = gtk::FlowBoxChild::new();
|
let child = gtk::FlowBoxChild::new();
|
||||||
@@ -149,7 +147,7 @@ impl ShowsChild {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn init(&self, pd: &Show) {
|
fn init(&self, pd: &Show) {
|
||||||
self.child.set_tooltip_text(pd.title());
|
self.child.set_tooltip_text(Some(pd.title()));
|
||||||
WidgetExt::set_name(&self.child, &pd.id().to_string());
|
WidgetExt::set_name(&self.child, &pd.id().to_string());
|
||||||
|
|
||||||
self.set_cover(pd.id())
|
self.set_cover(pd.id())
|
||||||
|
|||||||
@@ -0,0 +1,222 @@
|
|||||||
|
// window.rs
|
||||||
|
//
|
||||||
|
// Copyright 2019 Jordan Petridis <jpetridis@gnome.org>
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
use glib;
|
||||||
|
use glib::Variant;
|
||||||
|
|
||||||
|
use gio::{self, prelude::*, ActionMapExt, SettingsExt};
|
||||||
|
|
||||||
|
use gtk;
|
||||||
|
use gtk::prelude::*;
|
||||||
|
|
||||||
|
use crossbeam_channel::{unbounded, Receiver, Sender};
|
||||||
|
|
||||||
|
use crate::app::{Action, PdApplication};
|
||||||
|
use crate::headerbar::Header;
|
||||||
|
use crate::settings::{self, WindowGeometry};
|
||||||
|
use crate::stacks::Content;
|
||||||
|
use crate::utils;
|
||||||
|
use crate::widgets::about_dialog;
|
||||||
|
use crate::widgets::appnotif::InAppNotification;
|
||||||
|
use crate::widgets::player;
|
||||||
|
|
||||||
|
use std::cell::RefCell;
|
||||||
|
use std::ops::Deref;
|
||||||
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
use crate::config::APP_ID;
|
||||||
|
use crate::i18n::i18n;
|
||||||
|
|
||||||
|
/// Creates an action named `name` in the action map `T with the handler `F`
|
||||||
|
fn action<T, F>(thing: &T, name: &str, action: F)
|
||||||
|
where
|
||||||
|
T: ActionMapExt,
|
||||||
|
for<'r, 's> F: Fn(&'r gio::SimpleAction, Option<&Variant>) + 'static,
|
||||||
|
{
|
||||||
|
// Create a stateless, parameterless action
|
||||||
|
let act = gio::SimpleAction::new(name, None);
|
||||||
|
// Connect the handler
|
||||||
|
act.connect_activate(action);
|
||||||
|
// Add it to the map
|
||||||
|
thing.add_action(&act);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct MainWindow {
|
||||||
|
app: PdApplication,
|
||||||
|
pub(crate) window: gtk::ApplicationWindow,
|
||||||
|
pub(crate) overlay: gtk::Overlay,
|
||||||
|
pub(crate) content: Rc<Content>,
|
||||||
|
pub(crate) headerbar: Rc<Header>,
|
||||||
|
pub(crate) player: player::PlayerWrapper,
|
||||||
|
pub(crate) updater: RefCell<Option<InAppNotification>>,
|
||||||
|
pub(crate) sender: Sender<Action>,
|
||||||
|
pub(crate) receiver: Receiver<Action>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl MainWindow {
|
||||||
|
pub fn new(app: &PdApplication) -> Self {
|
||||||
|
let settings = gio::Settings::new("org.gnome.Podcasts");
|
||||||
|
|
||||||
|
let (sender, receiver) = unbounded();
|
||||||
|
|
||||||
|
let window = gtk::ApplicationWindow::new(app);
|
||||||
|
window.set_title(&i18n("Podcasts"));
|
||||||
|
if APP_ID.ends_with("Devel") {
|
||||||
|
window.get_style_context().add_class("devel");
|
||||||
|
}
|
||||||
|
|
||||||
|
let weak_s = settings.downgrade();
|
||||||
|
let weak_app = app.downgrade();
|
||||||
|
window.connect_delete_event(move |window, _| {
|
||||||
|
let app = match weak_app.upgrade() {
|
||||||
|
Some(a) => a,
|
||||||
|
None => return Inhibit(false),
|
||||||
|
};
|
||||||
|
|
||||||
|
let settings = match weak_s.upgrade() {
|
||||||
|
Some(s) => s,
|
||||||
|
None => return Inhibit(false),
|
||||||
|
};
|
||||||
|
|
||||||
|
info!("Saving window position");
|
||||||
|
WindowGeometry::from_window(&window).write(&settings);
|
||||||
|
|
||||||
|
info!("Application is exiting");
|
||||||
|
let app = app.clone().upcast::<gio::Application>();
|
||||||
|
app.quit();
|
||||||
|
Inhibit(false)
|
||||||
|
});
|
||||||
|
|
||||||
|
// Create a content instance
|
||||||
|
let content = Content::new(&sender).expect("Content initialization failed.");
|
||||||
|
|
||||||
|
// Create the headerbar
|
||||||
|
let header = Header::new(&content, &sender);
|
||||||
|
// Add the Headerbar to the window.
|
||||||
|
window.set_titlebar(Some(&header.container));
|
||||||
|
|
||||||
|
// Add the content main stack to the overlay.
|
||||||
|
let overlay = gtk::Overlay::new();
|
||||||
|
overlay.add(&content.get_stack());
|
||||||
|
|
||||||
|
let wrap = gtk::Box::new(gtk::Orientation::Vertical, 0);
|
||||||
|
// Add the overlay to the main Box
|
||||||
|
wrap.add(&overlay);
|
||||||
|
|
||||||
|
let player = player::PlayerWrapper::new(&sender);
|
||||||
|
// Add the player to the main Box
|
||||||
|
wrap.add(&player.action_bar);
|
||||||
|
|
||||||
|
let updater = RefCell::new(None);
|
||||||
|
|
||||||
|
window.add(&wrap);
|
||||||
|
|
||||||
|
// Retrieve the previous window position and size.
|
||||||
|
WindowGeometry::from_settings(&settings).apply(&window);
|
||||||
|
|
||||||
|
// Update the feeds right after the Window is initialized.
|
||||||
|
if settings.get_boolean("refresh-on-startup") {
|
||||||
|
info!("Refresh on startup.");
|
||||||
|
let s: Option<Vec<_>> = None;
|
||||||
|
utils::refresh(s, sender.clone());
|
||||||
|
}
|
||||||
|
|
||||||
|
let refresh_interval = settings::get_refresh_interval(&settings).num_seconds() as u32;
|
||||||
|
info!("Auto-refresh every {:?} seconds.", refresh_interval);
|
||||||
|
|
||||||
|
let r_sender = sender.clone();
|
||||||
|
gtk::timeout_add_seconds(refresh_interval, move || {
|
||||||
|
let s: Option<Vec<_>> = None;
|
||||||
|
utils::refresh(s, r_sender.clone());
|
||||||
|
|
||||||
|
glib::Continue(true)
|
||||||
|
});
|
||||||
|
|
||||||
|
Self {
|
||||||
|
app: app.clone(),
|
||||||
|
window,
|
||||||
|
overlay,
|
||||||
|
headerbar: header,
|
||||||
|
content,
|
||||||
|
player,
|
||||||
|
updater,
|
||||||
|
sender,
|
||||||
|
receiver,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Define the `GAction`s.
|
||||||
|
///
|
||||||
|
/// Used in menus and the keyboard shortcuts dialog.
|
||||||
|
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||||
|
pub fn setup_gactions(&self) {
|
||||||
|
let sender = &self.sender;
|
||||||
|
let weak_win = self.window.downgrade();
|
||||||
|
|
||||||
|
// Create the `refresh` action.
|
||||||
|
//
|
||||||
|
// This will trigger a refresh of all the shows in the database.
|
||||||
|
action(&self.window, "refresh", clone!(sender => move |_, _| {
|
||||||
|
gtk::idle_add(clone!(sender => move || {
|
||||||
|
let s: Option<Vec<_>> = None;
|
||||||
|
utils::refresh(s, sender.clone());
|
||||||
|
glib::Continue(false)
|
||||||
|
}));
|
||||||
|
}));
|
||||||
|
self.app.set_accels_for_action("win.refresh", &["<primary>r"]);
|
||||||
|
|
||||||
|
// Create the `OPML` import action
|
||||||
|
action(&self.window, "import", clone!(sender, weak_win => move |_, _| {
|
||||||
|
weak_win.upgrade().map(|win| utils::on_import_clicked(&win, &sender));
|
||||||
|
}));
|
||||||
|
|
||||||
|
action(&self.window, "export", clone!(sender, weak_win => move |_, _| {
|
||||||
|
weak_win.upgrade().map(|win| utils::on_export_clicked(&win, &sender));
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Create the action that shows a `gtk::AboutDialog`
|
||||||
|
action(&self.window, "about", clone!(weak_win => move |_, _| {
|
||||||
|
weak_win.upgrade().map(|win| about_dialog(&win));
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Create the quit action
|
||||||
|
let weak_instance = self.app.downgrade();
|
||||||
|
action(&self.window, "quit", move |_, _| {
|
||||||
|
weak_instance.upgrade().map(|app| app.quit());
|
||||||
|
});
|
||||||
|
self.app.set_accels_for_action("win.quit", &["<primary>q"]);
|
||||||
|
|
||||||
|
// Create the menu action
|
||||||
|
let header = Rc::downgrade(&self.headerbar);
|
||||||
|
action(&self.window, "menu", move |_, _| {
|
||||||
|
header.upgrade().map(|h| h.open_menu());
|
||||||
|
});
|
||||||
|
// Bind the hamburger menu button to `F10`
|
||||||
|
self.app.set_accels_for_action("win.menu", &["F10"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Deref for MainWindow {
|
||||||
|
type Target = gtk::ApplicationWindow;
|
||||||
|
|
||||||
|
fn deref(&self) -> &Self::Target {
|
||||||
|
&self.window
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user