jellyfin / jellyfin

The Free Software Media System
https://jellyfin.org
GNU General Public License v2.0
33.39k stars 3.04k forks source link

Influence of different localisation settings on Audio/Subtitle track selector #12277

Open jmercz opened 2 months ago

jmercz commented 2 months ago

Please describe your bug

This issue is based on the closing recommendation of issue #12272 to split the described problems into separate issues, namely recommendation 2 and 3. I decided to combine these two recommendations into one issue, as I lack the knowledge of the backend and cannot reasonably decompose the problems further, but can only describe my observations. Feel free to have a look into said issue, as it might give a better complete picture of the problems in the track selector.

This issue focuses on the influence of different localisation settings that can be made on the user side and the server side. The main issue is, that as a user I would expect the audio and subtitle track selection to be localised based on the user localisation setting. The resulting strings in the selector are however mainly influenced by several server settings, that may be inaccessible to said user.

Reproduction Steps

The following example uses German as the language for localisation. However this should be reproducable with any other language.

Starting from an all English setup with the following GUI options:

and the following environment variables set for the Docker container:

LC_ALL=en_UK.UTF-8
LANG=en_UK.UTF-8
LANGUAGE=en

the track selector looks like: 1_server-en_gui-en_environment-en Now we will gradually change to a German localisation by changing several settings and see the outcome.

User setting: Display language

Changing the user display language under User > Settings > Display > Display language to German yields 2_server-en_gui-de_environment-en Only the labels for the categories are localised ("Subtitle" -> "Untertitel"). However, the string of the selector itself remains untouched.

Server setting: Preferred display language

Changing the preferred server display language under Administration > Dashboard > General > Preferred display language to German yields 3_server-de_gui-de_environment-en localising only the default flag of the string in the track selector ("Default" -> "Standard"). (Though only for the subtitle track, refer to issue #12276).

Server environment: Environment variables

Only when we change the environment variables of the server itself - which I consider even a level above the server settings you can set in Jellyfin's GUI - to

LC_ALL=de_DE.UTF-8
LANG=de_DE.UTF-8
LANGUAGE=de:en

the strings in the selector are fully localised: 4_server-de_gui-de_environment-de where the language flags are successfully localised ("German" -> "Deutsch").

Summary

As @felix920506 suggested in his closing recommendation of #12272, the selector should be made into a client string, instead of a server string for better localisation support. On that note, I would propose that the localisation of the track selection should be controlled by only one setting, namely the user display language, since it is a crucial item of GUI interaction with the user. Furthermore, it is the only setting a restricted user can set by itself, without any admin rights.

Jellyfin Version

10.9.0

if other:

No response

Environment

- OS: DSM 7.2.1-69057 Update 5
- Linux Kernel: unknown
- Virtualization: Docker
- Clients: universal
- Browser:
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration:
- GPU Model:
- Plugins:
- Reverse Proxy:
- Base URL:
- Networking:
- Storage:

Jellyfin logs

No actions are taken, thus no log file should be of any use here.

FFmpeg logs

No response

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

jellyfin-bot commented 2 months ago

Hi, it seems like your issue report has the following item(s) that need to be addressed:

This is an automated message, currently under testing. Please file an issue here if you encounter any problems.