diff --git a/INSTALL.md b/INSTALL.md
index 7cb0abe5..cecb7aae 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -129,7 +129,10 @@ deploy-path = "/newroot/"; # ending slash is important
```
If you use nginx as a reverse proxy, you can simply replace `location /` with `location /newroot/` to achieve the same result.
## Reverse proxy settings
-_LMS_ is shipped with an embedded web server, but it is recommended to deploy behind a reverse proxy. You have to set the _behind-reverse-proxy_ option to _true_ in the `lms.conf` configuration file.
+_LMS_ is shipped with an embedded web server, but it is recommended to deploy behind a reverse proxy. You have to set the `behind-reverse-proxy` option to _true_ in the `lms.conf` configuration file and to adjust the trusted proxy list in `trusted-proxies` option.
+
+__Note__: when running in a docker environment, you have to trust the docker gateway IP (which is `172.17.0.1` by default)
+
Here is an example to make _LMS_ properly work on _myserver.org_ using _nginx_:
```
server {
@@ -147,10 +150,9 @@ server {
keepalive_timeout 10m;
location / {
-
- proxy_set_header Client-IP $remote_addr;
proxy_set_header Host $host;
- proxy_set_header X-Forwarded-For $remote_addr;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:5082/;
diff --git a/README.md b/README.md
index b82baa57..00820499 100644
--- a/README.md
+++ b/README.md
@@ -43,15 +43,15 @@ _LMS_ primarily relies on tags to organize your music collection but also suppor
### Filtering
It is possible to apply global filters on your collection using `genre`, `mood`, `grouping`, `language`, and by music library. More tags, including custom ones, can be added in the database administration settings.
-__Note__: You can use the `lms-metadata` tool to get an idea of the tags parsed by _LMS_ using [TagLib](https://github.com/taglib/taglib).
+__Note__: You can use the `lms-metadata` tool to get an idea of the tags parsed by _LMS_.
### Multiple artists
-_LMS_ works best when using the default Picard settings, where the `artist` tag contains a single display-friendly value, and the `artists` tag holds the actual artist names. This ensures a cleaner, more organized representation of artist names, when multiple artists are involved.
+_LMS_ works best when using the default [Picard](https://picard.musicbrainz.org/) settings, where the `artist` tag contains a single display-friendly value, and the `artists` tag holds the actual artist names. This ensures a cleaner, more organized representation of artist names, when multiple artists are involved.
### Multiple album artists
While LMS can manage multiple album artists using the `albumartist` tag, it works better when using the custom `albumartists` and `albumartistssort` tags, similar to how it handles regular artist tags.
-__Note__: if you use [Picard](https://picard.musicbrainz.org/), add the following script to include these tags:
+__Note__: if you use Picard, add the following script to include these tags:
```
$setmulti(albumartists,%_albumartists%)
$setmulti(albumartistssort,%_albumartists_sort%)
diff --git a/approot/artist.xml b/approot/artist.xml
index ddd340d9..6119ca39 100644
--- a/approot/artist.xml
+++ b/approot/artist.xml
@@ -29,7 +29,7 @@
${}
${}
- ${elements class="d-grid gap-3"}
+ ${elements class="row row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 gx-2 gy-4"}
${loading-indicator}
diff --git a/approot/images/unknown-artist.jpg b/approot/images/unknown-artist.jpg
deleted file mode 100755
index 8c3285ef..00000000
Binary files a/approot/images/unknown-artist.jpg and /dev/null differ
diff --git a/approot/images/unknown-artist.svg b/approot/images/unknown-artist.svg
new file mode 100644
index 00000000..107866e9
--- /dev/null
+++ b/approot/images/unknown-artist.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/approot/messages.xml b/approot/messages.xml
index 2cfb7606..1a7e401c 100644
--- a/approot/messages.xml
+++ b/approot/messages.xml
@@ -110,6 +110,7 @@
Scheduled on {1}Scanning: step {1}/{2}Associating artist images: {1}%...
+Associating release images: {1}%...Checking for duplicate files... {1} filesChecking for removed files... {1}%Compacting database...
@@ -276,18 +277,24 @@
Play History
+Method to sort artist's albumsAudioThese audio settings are local to your browser!InternalListenBrainzListenBrainz API tokenChange password
+Release Date (Ascending)
+Release Date (Descending)Default transcoding output bitrateDefault transcoding output formatCannot save using a demo account!Enable transcoding by defaultFeedback Settings
+Album Name
+Original Release Date (Ascending)
+Original Release Date (Descending)Bad passwordOld password must be filled inReplayGain mode
@@ -305,6 +312,7 @@
Album artistsTrack artistsSubsonic API
+User InterfaceTranscodingTranscoding output bitrateTranscoding output format
diff --git a/approot/messages_fr.xml b/approot/messages_fr.xml
index 1f216c86..5e3cdef5 100644
--- a/approot/messages_fr.xml
+++ b/approot/messages_fr.xml
@@ -110,6 +110,7 @@
Planifié le {1}En cours de scan : étape {1}/{2}Association des images des artistes: {1}%...
+Association des images des albums: {1}%...Vérification des fichiers dupliqués... {1} fichiersVérification des fichiers supprimés... {1}%Compactage de la base de données...
@@ -276,18 +277,24 @@
Historique de lecture
+Méthode pour trier les albums de l'artisteAudioCes paramètres audio sont locaux à votre navigateur !InterneListenBrainzJeton d'API ListenBrainzChangement de mot de passe
+Date de sortie (Croissant)
+Date de sortie (Décroissant)Bitrate par défaut du transcodageFormat par défaut du transcodageImpossible de sauvegarder en utilisant un compte de démo !Activer par défaut le transcodageFeedback Paramètres
+Nom de l'album
+Date de sortie originale (Croissant)
+Date de sortie originale (Décroissant)Mauvais mot de passeL'ancien mot de passe doit être renseignéMode ReplayGain
@@ -305,6 +312,7 @@
Tous les artistes d'albumTous les artistes de pisteAPI Subsonic
+Interface utilisateurTranscodageBitrate du transcodageFormat du transcodage
diff --git a/approot/messages_it.xml b/approot/messages_it.xml
index a1daeb59..e5755c71 100644
--- a/approot/messages_it.xml
+++ b/approot/messages_it.xml
@@ -110,6 +110,7 @@
Pianificato il {1}Scansione: passo {1}/{2}Associando immagini degli artisti: {1}%...
+Associando immagini degli album: {1}%...Controllo duplicati... {1} filesControllo file... {1}%Compattazione del database...
@@ -276,18 +277,24 @@
Storico riproduzione
+Metodo per ordinare gli album dell'artistaAudioQueste impostazioni sono salvate localmente su questo dispositivo!InternoListenBrainzToken API ListenBrainzCambia password
+Data di uscita (Crescente)
+Data di uscita (Decrescente)Bitrate di default per la transcodificaFormato di default per la transcodificaNon posso salvare le impostazioni utilizzando l'account demo!Abilita transcodifica di defaultFeedback Impostazioni
+Nome dell'album
+Data di uscita originale (Crescente)
+Data di uscita originale (Decrescente)Password errataDevi inserire la password attualeModalità ReplayGain
@@ -305,6 +312,7 @@
Artisti albumArtisti tracceSubsonic API
+Interfaccia utenteTranscodificaBitrate transcodificaFormato di transcodifica
diff --git a/approot/messages_pl.xml b/approot/messages_pl.xml
index a28bcb89..01343f09 100644
--- a/approot/messages_pl.xml
+++ b/approot/messages_pl.xml
@@ -119,6 +119,7 @@
Zaplanowano na {1}Skanowanie: krok {1}/{2}Kojarzenie obrazów artystów: {1}%...
+Kojarzenie obrazów albumów: {1}%...Sprawdzanie duplikatów... {1} plikSprawdzanie duplikatów... {1} pliki
@@ -302,18 +303,24 @@
Historia odtwarzania
+Metoda sortowania albumów artystyDźwiękTe ustawienia dotyczą wyłącznie tej przeglądarki!WewnętrznyListenBrainzListenBrainz API tokenZmień hasło
+Data wydania (Rosnąco)
+Data wydania (Malejąco)Domyślna przepływność transkodowaniaDomyślny format wyjściowy transkodowaniaNie można zapisywać na koncie demonstracyjnym!Aktywuj domyślnie transkodowanieFeedback Ustawienia
+Nazwa albumu
+Oryginalna data wydania (Rosnąco)
+Oryginalna data wydania (Malejąco)Błędne hasłoNależy podać stare hasłoTryb ReplayGain
@@ -331,6 +338,7 @@
Artyści z albumówArtyści ze ścieżekSubsonic API
+Interfejs użytkownikaTranskodowaniePrzepływność transkodowaniaFormat wyjściowy transkodowania
diff --git a/approot/messages_zh.xml b/approot/messages_zh.xml
index 97f1b500..efb8dd4f 100644
--- a/approot/messages_zh.xml
+++ b/approot/messages_zh.xml
@@ -80,6 +80,7 @@
+
更新周期更新开始时间每周
@@ -110,9 +111,10 @@
计划于 {1}扫描中: 阶段 {1}/{2}
-检查文件中... {1}%
+检查文件中... {1}%
+
检索文件中: {1} 文件从 AcousticBrainz 获取音轨特征: {1}/{2} 音轨 ({3}%)...
@@ -276,6 +278,7 @@
播放历史
+
音频这些音频设置仅保存在您的本地浏览器!
@@ -284,10 +287,15 @@
更改密码
+
+
使用演示账号时不能保存! 设置
+
+
+
无效密码必须填写旧密码ReplayGain 模式
@@ -305,6 +313,7 @@
专辑歌手音轨歌手Subsonic 应用程序接口
+
转码转码比特率转码格式
diff --git a/approot/settings.xml b/approot/settings.xml
index ae63455f..1ee166e7 100644
--- a/approot/settings.xml
+++ b/approot/settings.xml
@@ -5,10 +5,21 @@