Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
c58c745
Translated using Weblate (Russian)
weblate Mar 14, 2026
4027acb
Merge pull request #384 from weblate/weblate-tuner-tuner-desktop
technosf Mar 14, 2026
02638bf
Readme
Mar 14, 2026
68e0e09
Merge remote-tracking branch 'refs/remotes/origin/development' into d…
Mar 14, 2026
c170cda
I18N
Mar 14, 2026
4c15cc9
v2.1.0 Beta 3
Mar 14, 2026
9559b21
Merge pull request #385 from technosf/development
technosf Mar 14, 2026
c1c4e41
Update translation files
weblate Mar 14, 2026
9e9d74a
Translated using Weblate (Japanese)
weblate Mar 14, 2026
8bf7e61
Merge pull request #387 from weblate/weblate-tuner-tuner-ui
technosf Mar 14, 2026
d92805c
Merge pull request #386 from weblate/weblate-tuner-tuner-desktop
technosf Mar 14, 2026
1b12c54
Translated using Weblate (Gujarati)
weblate Mar 14, 2026
b8e51eb
Merge branch 'development' into weblate-tuner-tuner-ui
technosf Mar 14, 2026
82d2d0a
Merge pull request #388 from weblate/weblate-tuner-tuner-ui
technosf Mar 14, 2026
8d8bc55
Translated using Weblate (Latvian)
Mar 14, 2026
7ba1af9
Translated using Weblate (Turkish)
Mar 14, 2026
8c95305
Translated using Weblate (Turkish)
Mar 14, 2026
c45b444
Merge pull request #389 from weblate/weblate-tuner-tuner-ui
technosf Mar 14, 2026
3026cd9
Translated using Weblate (Vietnamese)
weblate Mar 15, 2026
064ea19
Translated using Weblate (French)
weblate Mar 15, 2026
8b3042c
Merge pull request #390 from weblate/weblate-tuner-tuner-ui
technosf Mar 15, 2026
6f37208
Merge pull request #391 from weblate/weblate-tuner-tuner-desktop
technosf Mar 15, 2026
c8136a7
v2.1.0 Beta 3
Mar 16, 2026
7b7dd74
Translated using Weblate (Danish)
weblate Mar 16, 2026
4ee46fb
Translated using Weblate (Latvian)
weblate Mar 16, 2026
36b197b
Merge pull request #394 from weblate/weblate-tuner-tuner-ui
technosf Mar 16, 2026
96da957
Merge pull request #392 from weblate/weblate-tuner-tuner-desktop
technosf Mar 16, 2026
5e40112
Merge branch 'tuner-labs:development' into development
technosf Mar 16, 2026
ced2cfa
Translated using Weblate (Lithuanian)
weblate Mar 16, 2026
effbf3a
Merge pull request #395 from weblate/weblate-tuner-tuner-desktop
technosf Mar 16, 2026
4767349
Translated using Weblate (Thai)
weblate Mar 16, 2026
1fd0d6e
Merge pull request #396 from weblate/weblate-tuner-tuner-desktop
technosf Mar 16, 2026
97f4ccb
Translated using Weblate (German)
weblate Mar 16, 2026
162d551
Merge pull request #397 from weblate/weblate-tuner-tuner-ui
technosf Mar 16, 2026
8bc6405
Translated using Weblate (Ukrainian)
weblate Mar 16, 2026
bc5b1fa
Merge pull request #398 from weblate/weblate-tuner-tuner-ui
technosf Mar 16, 2026
d4e3326
Translated using Weblate (Norwegian Bokmål)
weblate Mar 16, 2026
4dae895
Translated using Weblate (Gujarati)
weblate Mar 16, 2026
c824d1c
Merge pull request #399 from weblate/weblate-tuner-tuner-desktop
technosf Mar 16, 2026
f177b0c
Merge pull request #400 from weblate/weblate-tuner-tuner-ui
technosf Mar 16, 2026
ff72327
Linguas
Mar 16, 2026
0de0f56
GU po reset
Mar 16, 2026
c9a4378
Merge branch 'development' into development
technosf Mar 16, 2026
97879fb
Merge pull request #393 from technosf/development
technosf Mar 16, 2026
681c79d
Translated using Weblate (Arabic)
weblate Mar 16, 2026
9e200ad
Merge pull request #401 from weblate/weblate-tuner-tuner-ui
technosf Mar 16, 2026
c0d4bf4
Translated using Weblate (Spanish (Latin America))
weblate Mar 16, 2026
985f8ae
Merge pull request #403 from weblate/weblate-tuner-countries-languages
technosf Mar 16, 2026
1f64d91
Translated using Weblate (French)
weblate Mar 16, 2026
d974e26
Translated using Weblate (Icelandic)
weblate Mar 16, 2026
96873b7
Translated using Weblate (German)
weblate Mar 16, 2026
39cdd42
Merge pull request #407 from weblate/weblate-tuner-countries-languages
technosf Mar 16, 2026
1c44fea
Merge pull request #406 from weblate/weblate-tuner-tuner-desktop
technosf Mar 16, 2026
30f1117
Merge pull request #405 from weblate/weblate-tuner-tuner-ui
technosf Mar 16, 2026
5816020
Removing GU because weblate issue
Mar 16, 2026
f32478e
Merge pull request #408 from technosf/development
technosf Mar 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 9 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
Minimalist radio station player - **Tuner** Version 2

<p align="center">
<img src="flathub/Tuner.201.one.png" width="600">
<img src="flathub/Tuner.210.one.png" width="600">
</p>

>I love listening to radio while I work. There are tens of thousands of cool internet radio stations available, however I find it hard to "find" new stations by using filters and genres. As of now, this little app takes away all the filtering and just presents me with new radio stations every time I use it.
Expand All @@ -25,7 +25,7 @@ Minimalist radio station player - **Tuner** Version 2

- Explore ever changing radio stations indexed in [radio-browser.info](https://www.radio-browser.info/)
- See the top selections of listened to and saved stations from the index
- Find different station content genres and subgeneres from the index
- Find different station content genres and subgenres from the index
- Jukebox - Play a new random station every ten minutes
- Save your favourite stations
- Search for stations and content by keyword
Expand All @@ -37,7 +37,7 @@ Minimalist radio station player - **Tuner** Version 2

### Internationalization & Translation

**Tuner** is Internationalized, and is available in various languges. Translations are hosted on [Weblate](https://hosted.weblate.org/engage/tuner/). Please help by [translating Tuner into your language or fix any translation issues](doc/I18N.md) you find.
**Tuner** is Internationalized, and is available in various languages. Translations are hosted on [Weblate](https://hosted.weblate.org/engage/tuner/). Please help by [translating Tuner into your language or fix any translation issues](doc/I18N.md) you find.

Thanks to the Weblate team for generously hosting **Tuner** for free!

Expand All @@ -58,9 +58,9 @@ Please help make **Tuner** work on your favorite Distro/Package.

Join in or start [discussion about tuner](https://github.com/orgs/tuner-labs/discussions)... Feature request, observations and Issues can be documented with tickets on [Github](https://github.com/tuner-labs/tuner/issues)

### Build, Maintance and Development of Tuner
### Build, Maintenance and Development of Tuner

Building, developing and maintianing **Tuner** is detailed seperately and in detail in the [DEVELOP](doc/DEVELOP.md) markdown.
Building, developing and maintaining **Tuner** is detailed separately and in detail in the [DEVELOP](doc/DEVELOP.md) markdown.

### Known Issues

Expand All @@ -80,14 +80,14 @@ This relates to Gtk looking for Xapp (which isn't used by Tuner) and can be igno

### Environment Variables

The radio station index server can be specified via and environmental varible at startup:
The radio station index server can be specified via and environmental variable at startup:

`TUNER_API` - a `:` separated list of API servers to read from, e.g.
_ `export TUNER_API="de1.api.radio-browser.info:nl1.api.radio-browser.info"; io.github.tuner_labs.tuner`

## Contribute

Help is apreciated:
Help is appreciated:

- Deeper integration into the GNOME desktop environment (DBus and such)
- Development of new features for Tuner (skills: Vala/C)
Expand All @@ -113,7 +113,7 @@ Help is apreciated:

## Credits

- [technosf](https://github.com/technosf) Current maintainer and rewriter of a swarthe of Tuner for V2
- [technosf](https://github.com/technosf) Current maintainer and rewriter of a swarth of Tuner for V2
- [louis77](https://github.com/louis77) Originator and genius behind Tuner
- [@jrthwlate](https://hosted.weblate.org/user/jrthwlate/) - Estonian translation
- [@yakushabb](https://github.com/yakushabb) for flathub and flatpak config help
Expand All @@ -126,7 +126,6 @@ Help is apreciated:
- [@btd1337](https://github.com/btd1337) - supports Tuner on Arch Linux / AUR
- [@SwampRabbit](https://github.com/SwampRabbit) - supports Tuner on MX Linux


## Disclaimer

Tuner uses the community-driven radio station catalog radio-browser.info. Tuner
Expand All @@ -135,7 +134,7 @@ is not responsible for the stations shown or the actual streaming audio content.
## Third-party code

This project contains small portions of code derived from the
Granite library (https://github.com/elementary/granite), used by
Granite library (<https://github.com/elementary/granite>), used by
the elementary OS project.

The copied components remain licensed under the LGPL-3.0 and retain
Expand Down
2 changes: 1 addition & 1 deletion data/io.github.tuner_labs.tuner.gschema.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<description>Fast cycle through the metadata from the playing stream if show stream info is enabled</description>
</key>
<key name="stream-info-image-popup" type="b">
<default>false</default>
<default>true</default>
<summary>Stream metadata image popup</summary>
<description>Show a movable popup with images discovered in the stream metadata</description>
</key>
Expand Down
27 changes: 13 additions & 14 deletions doc/DEVELOP.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Discover and Listen to your favourite internet radio stations, and add improve t

- [Overview](#overview)
- [TL;DR](#tldr)
- [Prerequisits](#prerequisits)
- [Prerequisites](#prerequisites)
- [Naming Conventions](#naming-conventions)
- [Dependencies](#dependencies)
- [Tuner Development Lifecycle](#tuner-development-lifecycle)
Expand All @@ -29,7 +29,7 @@ Discover and Listen to your favourite internet radio stations, and add improve t

## Overview

**_Tuner_** is hosted on [Github](https://github.com/tuner-app/tuner), packaged as a Flatpak and distributed by Flathub. **_Tuner_** is writen in [Vala](https://vala.dev/), a C#/Java/JavaFX-like language with a self-hosting compiler that generates C code, uses the GObject type system and wrapping a number of GTK libraries, and utilizes GNOME internationalization and localization (_i18n_) for user-facing strings, which are translated via [Weblate](https://hosted.weblate.org/projects/tuner/). [Meson](https://mesonbuild.com/) is the build system.
**_Tuner_** is hosted on [Github](https://github.com/tuner-app/tuner), packaged as a Flatpak and distributed by Flathub. **_Tuner_** is written in [Vala](https://vala.dev/), a C#/Java/JavaFX-like language with a self-hosting compiler that generates C code, uses the GObject type system and wrapping a number of GTK libraries, and utilizes GNOME internationalization and localization (_i18n_) for user-facing strings, which are translated via [Weblate](https://hosted.weblate.org/projects/tuner/). [Meson](https://mesonbuild.com/) is the build system.

## TL;DR

Expand All @@ -44,11 +44,11 @@ flatpak-builder --force-clean --user --sandbox --install build-dir io.github.tun
flatpak --user run io.github.tuner_labs.tuner
```

## Prerequisits
## Prerequisites

### Licenses

_Tuner_ is licensed under **GPL-3.0-or-later**
_Tuner_ is licensed under **GPL-3.0-or-later**
Compliance can be checked using [Reuse](https://reuse.software/) linter:

```bash
Expand All @@ -73,7 +73,6 @@ Going forward, all new code should conform to the following naming conventions:
Development dependencies for Tuner are:

```bash
granite
gstreamer-1.0
gstreamer-player-1.0
gtk+-3.0
Expand All @@ -88,7 +87,7 @@ Install required dependencies (Debian/Ubuntu):

```bash
sudo apt install git valac meson
sudo apt install libgtk-3-dev libgee-0.8-dev libgranite-dev libgstreamer1.0-dev libgstreamer-plugins-bad1.0-dev libsoup-3.0-dev libjson-glib-dev
sudo apt install libgtk-3-dev libgee-0.8-dev libgstreamer1.0-dev libgstreamer-plugins-bad1.0-dev libsoup-3.0-dev libjson-glib-dev
```

## Tuner Development Lifecycle
Expand All @@ -107,20 +106,20 @@ The development lifecycle is:
- Test
- Flatpak Build
- Local Flatpak User build and test
- Github Flatpack build and test
- Github Flatpak build and test
- Pull Request

### Building Tuner From Source

After Forking your own copy of the Tuner project from [https://github.com/tuner-labs/tuner](https://github.com/tuner-labs/tuner), _clone_ your copy to your development machine then checkout the velopment branch:
After Forking your own copy of the Tuner project from [https://github.com/tuner-labs/tuner](https://github.com/tuner-labs/tuner), _clone_ your copy to your development machine then checkout the development branch:

```bash
gh repo clone yourusername/tuner
cd tuner
checkout development
```

There are two build configurations: _debug_ and _release_. The _debug_ build (manifest _com.github.louis77.tuner.debug.yml_) is recommended for development, while the _release_ build (manifest _com.github.louis77.tuner.yml_) is for distribution. Build instructions will focus on the _debug_ build. Copy the required manifest to _com.github.louis77.tuner.xml_ before building.
There are two build configurations: _debug_ and _release_. The _debug_ build (manifest _io.github.tuner_labs.tuner.debug.yml_) is recommended for development, while the _release_ build (manifest _io.github.tuner_labs.tuner.yml_) is for distribution. Build instructions will focus on the _debug_ build. Copy the required manifest to _io.github.tuner_labs.tuner.xml_ before building.

Clone the repo and drop into the Tuner directory:

Expand Down Expand Up @@ -187,7 +186,7 @@ flatpak-builder --force-clean --user --sandbox --install build-dir io.github.tun
flatpak-builder --force-clean --user --sandbox --install build-dir io.github.tuner_labs.tuner.yml
```

Run the Tuner flatpack:
Run the Tuner flatpak:

```bash
flatpak --user run io.github.tuner_labs.tuner
Expand All @@ -199,13 +198,13 @@ Check the app version to ensure that it matches the version in the manifest.

### Build Changes

If the build has changed it may be required to update repository check-in **Action** workflows in the _.github_ directory prior to check-in. For example if the _Platform_ chnges the Repository _Build and Test_ and _CI_ actions need to be updated and pushed prior to code changes are pushed. It is also good practice to check to see if the action components themselves have been superceded and need to reference new versions.
If the build has changed it may be required to update repository check-in **Action** workflows in the _.github_ directory prior to check-in. For example if the _Platform_ changes the Repository _Build and Test_ and _CI_ actions need to be updated and pushed prior to code changes are pushed. It is also good practice to check to see if the action components themselves have been superseded and need to reference new versions.

### Language Changes & Translations

Changes to strings that are internationalized require translation via [Weblate](https://hosted.weblate.org/projects/tuner/) and reintegration of the new translations, the .po files, into the build via a Weblate pull request.

If translatable strings have been update for translation by GNOME gettext require that the _.pot_ file be regenerated, checked in and pushed to the development branch for Weblate to pick them up. If _Countries_ or _Languages_, or if other strings in the _Application_ have changed, or if the package _extra_ metadata has changed, the regenration commands are:
If translatable strings have been update for translation by GNOME gettext require that the _.pot_ file be regenerated, checked in and pushed to the development branch for Weblate to pick them up. If _Countries_ or _Languages_, or if other strings in the _Application_ have changed, or if the package _extra_ metadata has changed, the regeneration commands are:

```bash
meson compile -C builddir countries-pot
Expand All @@ -223,7 +222,7 @@ Before a pull request can be accepted, the code must pass linting. This is done
flatpak run --command=flatpak-builder-lint org.flatpak.Builder manifest io.github.tuner_labs.tuner.yml
```

Linting currently produces the following issues (adddressed in ticket #140):
Linting currently produces the following issues (addressed in ticket #140):

```json
{
Expand Down Expand Up @@ -278,7 +277,7 @@ _Note:_ Variables appear as pointers, and generated code is not found. Please su

### Bug Introduction Deduction

Knowing when a bug was introduced requires building previous versions and looking for the aberrent behavior. The following commands can be used to check out previous versions of the code:
Knowing when a bug was introduced requires building previous versions and looking for the aberrant behavior. The following commands can be used to check out previous versions of the code:

```bash
git fetch
Expand Down
12 changes: 6 additions & 6 deletions doc/I18N.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ SPDX-License-Identifier: GPL-3.0-or-later

**Tuner** uses [Gnome *i18n*](https://developer.gnome.org/documentation/guidelines/localization.html) for internationalization. This system and library specifies source files (*POTFILES*) from which to extract identified strings for translation (the *.pot* file) and the target languages (*LINGUAS*). During the build process translated strings (*.po* files) are package and the included library uses the appropriate translated strings are then used by the host system when running **Tuner**.

Translations are creted, managed and applied via [Weblate](https://hosted.weblate.org/projects/tuner/) as several different components:
Translations are created, managed and applied via [Weblate](https://hosted.weblate.org/projects/tuner/) as several different components:

* [Glossary](https://hosted.weblate.org/projects/tuner/glossary/) which has common terminology, terms used throughout
* [Application](https://hosted.weblate.org/projects/tuner/tuner-ui/) which covers translatable items in the application UI
* [Countries Languages](https://hosted.weblate.org/projects/tuner/country-names/) static translations of Country and language names
* [Flatpak Metadata](https://hosted.weblate.org/projects/tuner/tuner-desktop/) for packaging and deployment

As languages and translations are updated in Weblate, Weblate generates the approriate Gnome *.po* translations files and opens pull requests on **Tuner**.
As languages and translations are updated in Weblate, Weblate generates the appropriate Gnome *.po* translations files and opens pull requests on **Tuner**.

## Managing Languages and Translations

Expand All @@ -30,18 +30,18 @@ Components can be *locked* so that more static translations, Countries and Langu

## i18n in the code

Strings in the UI source code that are candidates for translation are identifed using the standard Gnome *xgettext* identification by being encapsulated by *\_()*
Strings in the UI source code that are candidates for translation are identified using the standard Gnome *xgettext* identification by being encapsulated by *\_()*

Build files to create the translation instructions (*.pot* files), translations (*.po* files) and resulting files themselves exist in the *po* directory. These files do not need to be generated very frequently - only after source strings have changed, or new translations created, and prior to packaging the app.

Weblate picks up source string changes from the Tuner *development* branch *.pot* files. New translations (*.po* files) arive in the directories via *pull requests* from Weblate to the Tuner repo development branch.
Weblate picks up source string changes from the Tuner *development* branch *.pot* files. New translations (*.po* files) arrive in the directories via *pull requests* from Weblate to the Tuner repo development branch.

The *.pot* files are build by *xgettext* scanning the files specified in *POTFILES*. To regenrate the *.pot* files requires a build:
The *.pot* files are build by *xgettext* scanning the files specified in *POTFILES*. To regenerate the *.pot* files requires a build:

```bash
rm -r builddir
meson setup --buildtype=debug builddir -Dtranslation=update
meson compile -C builddir pot
meson compile -C builddir application-pot
meson compile -C builddir countries-pot
meson compile -C builddir extra-pot
```
Expand Down
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
project (
'io.github.tuner_labs.tuner',
'vala', 'c',
version: '2.1.0-beta.2',
version: '2.1.0-beta.3',
meson_version: '>= 1.3.2',
)

Expand Down
7 changes: 6 additions & 1 deletion po/application/LINGUAS
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# Copyright © 2026 <https://github.com/technosf>
# SPDX-FileCopyrightText: © 2026 <https://github.com/technosf>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#

ar
bg
cs
Expand All @@ -8,7 +14,6 @@ es_419
et
fa
fr
gu
hu
id
is
Expand Down
Loading
Loading