diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-08-24 22:44:27 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-08-24 22:44:27 +0200 |
| commit | df7eb105dda550989dccd3ba2bf22a50e919b19b (patch) | |
| tree | afc5de8f43d8fe188a5fdb41ffc504c211e07ccc /packages/meshbay-hub/src/meshbay_hub/static/locales | |
| parent | 665fb2004e55b72ea483aa50fea81f6a6fd9c322 (diff) | |
| download | meshbay-df7eb105dda550989dccd3ba2bf22a50e919b19b.tar.gz | |
feat(hub): audio_root wiring, mutually-exclusive players, Settings rework
Five related pieces of polish against the Music app and Settings, all
from the same conversation:
- Music app now requires audio_root, same as Videos requires video_root:
an empty-state message until one is set, and grouping filtered to only
what's under it (underAudioRoot, mirroring video-app.js's
underVideoRoot). Wires the new audio_root/audio_root_ack pair through
transport.js and group-page.js state the same way video_root already
flows.
- Starting one player now stops the other — opening a film closes the
music queue, starting a track closes the video modal. Both used to run
at once, found live.
- Group Settings reworked: every section but a bare form (invite,
pair-operator, approve-device) is now collapsible (CollapsibleSection);
the uploads on/off button is a real toggle switch (ToggleSwitch,
reused for TMDB/MusicBrainz's enabled switches too, each now with an
icon + status badge in its header instead of a plain checkbox row);
and shared directories, the Videos root picker, and the new Music root
picker are merged into one "Directories" section (RootFolderRow) instead
of three separate ones scattered down the page — the root pickers only
show once their app is actually enabled.
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales')
10 files changed, 90 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js index b05c8b1..83b5c1f 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js @@ -162,6 +162,7 @@ export default { 'video.mode_flat': 'Flache Liste', 'video.empty': 'Keine Videos gefunden.', 'video.no_root_configured': 'Für diese Gruppe ist noch kein Videos-Stammordner festgelegt — ein Operator kann in den Einstellungen einen auswählen.', + 'music.no_root_configured': 'Für diese Gruppe ist noch kein Musik-Stammordner festgelegt — ein Operator kann in den Einstellungen einen auswählen.', 'video.director': 'Regie', 'video.specials': 'Specials', 'video.season_n': 'Staffel {n}', @@ -645,6 +646,14 @@ export default { 'settings_node.video_root_save': 'Speichern', 'settings_node.video_root_change_confirm': 'Das Ändern des Videos-Stammordners ersetzt, was jedes Mitglied im Videos-Tab sieht. Fortfahren?', + 'settings_node.audio_root_title': 'Musik-Stammordner', + 'settings_node.audio_root_hint': 'Welcher Ordner (oder Unterordner) als Einstiegspunkt der Musik-App für diese Gruppe dient. In Musik wird nichts angezeigt, und es werden keine Tag-/Cover-Daten gelesen, bis einer ausgewählt wurde.', + 'settings_node.audio_root_none': '— keiner ausgewählt —', + 'settings_node.audio_root_save': 'Speichern', + 'settings_node.audio_root_change_confirm': 'Das Ändern des Musik-Stammordners ersetzt, was jedes Mitglied im Musik-Tab sieht. Fortfahren?', + 'settings_node.directories_title': 'Verzeichnisse', + 'settings_node.directories_hint': 'Freigegebene Ordner und welchen davon die Videos- und Musik-Apps als eigenen Einstiegspunkt nutzen.', + // Create-group wizard 'wizard.title': 'Gruppe erstellen', 'wizard.detecting': 'Lokaler Node wird erkannt…', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js index db7d048..1101eb2 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js @@ -160,6 +160,7 @@ export default { 'video.mode_flat': 'Flat list', 'video.empty': 'No videos found.', 'video.no_root_configured': 'No Videos root folder is set for this group yet — an operator can choose one in Settings.', + 'music.no_root_configured': 'No Music root folder is set for this group yet — an operator can choose one in Settings.', 'video.director': 'Director', 'video.specials': 'Specials', 'video.season_n': 'Season {n}', @@ -470,6 +471,14 @@ export default { 'settings_node.video_root_save': 'Save', 'settings_node.video_root_change_confirm': 'Changing the Videos root replaces what every member sees in the Videos tab. Continue?', + 'settings_node.audio_root_title': 'Music root folder', + 'settings_node.audio_root_hint': 'Which folder (or subfolder) the Music app treats as its entry point for this group. Nothing shows in Music, and no tag/cover reading runs, until one is chosen.', + 'settings_node.audio_root_none': '— none chosen —', + 'settings_node.audio_root_save': 'Save', + 'settings_node.audio_root_change_confirm': 'Changing the Music root replaces what every member sees in the Music tab. Continue?', + 'settings_node.directories_title': 'Directories', + 'settings_node.directories_hint': 'Shared folders, and which of them the Videos and Music apps use as their own entry point.', + // Members 'members.col_role': 'Role', 'members.group_role': 'Group role', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js index 8f29908..d9fd76f 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js @@ -160,6 +160,7 @@ export default { 'video.mode_flat': 'Lista plana', 'video.empty': 'No se encontraron vídeos.', 'video.no_root_configured': 'Aún no se ha definido una carpeta raíz de Vídeos para este grupo — un operador puede elegir una en Configuración.', + 'music.no_root_configured': 'Aún no se ha definido una carpeta raíz de Música para este grupo — un operador puede elegir una en Configuración.', 'video.director': 'Director', 'video.specials': 'Especiales', 'video.season_n': 'Temporada {n}', @@ -640,6 +641,14 @@ export default { 'settings_node.video_root_save': 'Guardar', 'settings_node.video_root_change_confirm': 'Cambiar la raíz de Vídeos reemplaza lo que ve cada miembro en la pestaña Vídeos. ¿Continuar?', + 'settings_node.audio_root_title': 'Carpeta raíz de Música', + 'settings_node.audio_root_hint': 'Qué carpeta (o subcarpeta) trata la app Música como su punto de entrada para este grupo. No se muestra nada en Música, ni se leen etiquetas o carátulas, hasta que se elija una.', + 'settings_node.audio_root_none': '— ninguna elegida —', + 'settings_node.audio_root_save': 'Guardar', + 'settings_node.audio_root_change_confirm': 'Cambiar la raíz de Música reemplaza lo que ve cada miembro en la pestaña Música. ¿Continuar?', + 'settings_node.directories_title': 'Directorios', + 'settings_node.directories_hint': 'Carpetas compartidas, y cuál de ellas usan las apps de Vídeos y Música como su propio punto de entrada.', + // Create group wizard 'wizard.title': 'Crear grupo', 'wizard.detecting': 'Detectando node local…', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js index 5d83517..7e0b13f 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js @@ -161,6 +161,7 @@ export default { 'video.mode_flat': 'Liste à plat', 'video.empty': 'Aucune vidéo trouvée.', 'video.no_root_configured': "Aucun dossier racine des Vidéos n'est encore défini pour ce groupe — un opérateur peut en choisir un dans les Paramètres.", + 'music.no_root_configured': 'Aucun dossier racine de Musique n\'est encore défini pour ce groupe — un opérateur peut en choisir un dans les Paramètres.', 'video.director': 'Réalisateur', 'video.specials': 'Bonus', 'video.season_n': 'Saison {n}', @@ -656,6 +657,14 @@ export default { 'settings_node.video_root_save': 'Enregistrer', 'settings_node.video_root_change_confirm': "Changer la racine des Vidéos remplace ce que chaque membre voit dans l'onglet Vidéos. Continuer ?", + 'settings_node.audio_root_title': 'Dossier racine de la Musique', + 'settings_node.audio_root_hint': 'Quel dossier (ou sous-dossier) sert de point d\'entrée à l\'application Musique pour ce groupe. Rien ne s\'affiche dans Musique, et aucune lecture de tags/pochettes n\'est effectuée, tant qu\'aucun n\'est choisi.', + 'settings_node.audio_root_none': '— aucun choisi —', + 'settings_node.audio_root_save': 'Enregistrer', + 'settings_node.audio_root_change_confirm': 'Changer la racine de la Musique remplace ce que chaque membre voit dans l\'onglet Musique. Continuer ?', + 'settings_node.directories_title': 'Répertoires', + 'settings_node.directories_hint': 'Dossiers partagés, et lequel d\'entre eux les applications Vidéos et Musique utilisent comme leur propre point d\'entrée.', + // Create group wizard 'wizard.title': 'Créer un groupe', 'wizard.detecting': 'Détection du node local…', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js index fb88cbe..7d2fada 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js @@ -161,6 +161,7 @@ export default { 'video.mode_flat': 'Elenco semplice', 'video.empty': 'Nessun video trovato.', 'video.no_root_configured': 'Per questo gruppo non è ancora impostata una cartella radice di Video — un operatore può sceglierne una nelle Impostazioni.', + 'music.no_root_configured': 'Per questo gruppo non è ancora impostata una cartella radice di Musica — un operatore può sceglierne una nelle Impostazioni.', 'video.director': 'Regista', 'video.specials': 'Speciali', 'video.season_n': 'Stagione {n}', @@ -654,6 +655,14 @@ export default { 'settings_node.video_root_save': 'Salva', 'settings_node.video_root_change_confirm': 'Cambiare la radice di Video sostituisce ciò che ogni membro vede nella scheda Video. Continuare?', + 'settings_node.audio_root_title': 'Cartella radice di Musica', + 'settings_node.audio_root_hint': 'Quale cartella (o sottocartella) l\'app Musica considera come punto di ingresso per questo gruppo. In Musica non viene mostrato nulla, e non viene letto alcun tag/copertina, finché non ne viene scelta una.', + 'settings_node.audio_root_none': '— nessuna scelta —', + 'settings_node.audio_root_save': 'Salva', + 'settings_node.audio_root_change_confirm': 'Cambiare la radice di Musica sostituisce ciò che ogni membro vede nella scheda Musica. Continuare?', + 'settings_node.directories_title': 'Directory', + 'settings_node.directories_hint': 'Cartelle condivise, e quale di esse le app Video e Musica usano come proprio punto di ingresso.', + // Create-group wizard 'wizard.title': 'Crea gruppo', 'wizard.detecting': 'Rilevamento del node locale…', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js index 84e9eb5..38fb19b 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js @@ -158,6 +158,7 @@ export default { 'video.mode_flat': 'フラット表示', 'video.empty': '動画が見つかりません。', 'video.no_root_configured': 'このグループにはまだ動画のルートフォルダが設定されていません — 操作者が設定画面で選択できます。', + 'music.no_root_configured': 'このグループにはまだ音楽のルートフォルダが設定されていません — 操作者が設定画面で選択できます。', 'video.director': '監督', 'video.specials': '特別編', 'video.season_n': 'シーズン{n}', @@ -638,6 +639,14 @@ export default { 'settings_node.video_root_save': '保存', 'settings_node.video_root_change_confirm': '動画のルートフォルダを変更すると、全メンバーの動画タブの表示内容が変わります。続行しますか?', + 'settings_node.audio_root_title': '音楽のルートフォルダ', + 'settings_node.audio_root_hint': 'このグループで音楽アプリの起点とするフォルダ(またはサブフォルダ)です。選択されるまで、音楽には何も表示されず、タグ・カバー情報の読み込みも行われません。', + 'settings_node.audio_root_none': '— 未選択 —', + 'settings_node.audio_root_save': '保存', + 'settings_node.audio_root_change_confirm': '音楽のルートフォルダを変更すると、全メンバーの音楽タブの表示内容が変わります。続行しますか?', + 'settings_node.directories_title': 'ディレクトリ', + 'settings_node.directories_hint': '共有フォルダと、動画アプリ・音楽アプリがそれぞれの起点として使用するフォルダです。', + // Wizard 'wizard.title': 'グループを作成', 'wizard.detecting': 'ローカル node を検出中…', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js index 06097e6..fdfcb89 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js @@ -162,6 +162,7 @@ export default { 'video.mode_flat': 'Platte lijst', 'video.empty': "Geen video's gevonden.", 'video.no_root_configured': "Er is nog geen hoofdmap voor Video's ingesteld voor deze groep — een operator kan er een kiezen bij Instellingen.", + 'music.no_root_configured': 'Er is nog geen hoofdmap voor Muziek ingesteld voor deze groep — een operator kan er een kiezen bij Instellingen.', 'video.director': 'Regisseur', 'video.specials': "Extra's", 'video.season_n': 'Seizoen {n}', @@ -656,6 +657,14 @@ export default { 'settings_node.video_root_save': 'Opslaan', 'settings_node.video_root_change_confirm': "Het wijzigen van de hoofdmap voor Video's vervangt wat elk lid ziet in het tabblad Video's. Doorgaan?", + 'settings_node.audio_root_title': 'Hoofdmap voor Muziek', + 'settings_node.audio_root_hint': 'Welke map (of submap) de Muziek-app als startpunt gebruikt voor deze groep. Er wordt niets getoond in Muziek, en er worden geen tags/covers gelezen, totdat er een gekozen is.', + 'settings_node.audio_root_none': '— geen gekozen —', + 'settings_node.audio_root_save': 'Opslaan', + 'settings_node.audio_root_change_confirm': 'Het wijzigen van de hoofdmap voor Muziek vervangt wat elk lid ziet in het tabblad Muziek. Doorgaan?', + 'settings_node.directories_title': 'Mappen', + 'settings_node.directories_hint': 'Gedeelde mappen, en welke daarvan de Video\'s- en Muziek-apps als eigen startpunt gebruiken.', + // Create group wizard 'wizard.title': 'Groep aanmaken', 'wizard.detecting': 'Lokale node wordt gedetecteerd…', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js index e24fd1e..8e7f636 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js @@ -167,6 +167,7 @@ export default { 'video.mode_flat': 'Lista płaska', 'video.empty': 'Nie znaleziono żadnych filmów.', 'video.no_root_configured': 'Dla tej grupy nie wybrano jeszcze katalogu głównego Wideo — operator może go wybrać w Ustawieniach.', + 'music.no_root_configured': 'Dla tej grupy nie wybrano jeszcze katalogu głównego Muzyki — operator może go wybrać w Ustawieniach.', 'video.director': 'Reżyser', 'video.specials': 'Dodatki', 'video.season_n': 'Sezon {n}', @@ -681,6 +682,14 @@ export default { 'settings_node.video_root_save': 'Zapisz', 'settings_node.video_root_change_confirm': 'Zmiana katalogu głównego Wideo zastępuje to, co widzi każdy członek w karcie Wideo. Kontynuować?', + 'settings_node.audio_root_title': 'Katalog główny Muzyki', + 'settings_node.audio_root_hint': 'Który katalog (lub podkatalog) aplikacja Muzyka traktuje jako punkt wejścia dla tej grupy. W Muzyce nic się nie wyświetla i nie są odczytywane żadne tagi/okładki, dopóki nie zostanie wybrany.', + 'settings_node.audio_root_none': '— nie wybrano —', + 'settings_node.audio_root_save': 'Zapisz', + 'settings_node.audio_root_change_confirm': 'Zmiana katalogu głównego Muzyki zastępuje to, co widzi każdy członek w karcie Muzyka. Kontynuować?', + 'settings_node.directories_title': 'Katalogi', + 'settings_node.directories_hint': 'Katalogi udostępnione oraz to, który z nich aplikacje Wideo i Muzyka traktują jako własny punkt wejścia.', + // Create-group wizard 'wizard.title': 'Utwórz grupę', 'wizard.detecting': 'Wykrywanie lokalnego node…', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js index 1a3069a..97786f4 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js @@ -162,6 +162,7 @@ export default { 'video.mode_flat': 'Lista simples', 'video.empty': 'Nenhum vídeo encontrado.', 'video.no_root_configured': 'Ainda não há uma pasta raiz de Vídeos definida para este grupo — um operador pode escolher uma em Configurações.', + 'music.no_root_configured': 'Ainda não há uma pasta raiz de Música definida para este grupo — um operador pode escolher uma em Configurações.', 'video.director': 'Diretor', 'video.specials': 'Especiais', 'video.season_n': 'Temporada {n}', @@ -641,6 +642,14 @@ export default { 'settings_node.video_root_save': 'Salvar', 'settings_node.video_root_change_confirm': 'Alterar a raiz de Vídeos substitui o que cada membro vê na aba Vídeos. Continuar?', + 'settings_node.audio_root_title': 'Pasta raiz de Música', + 'settings_node.audio_root_hint': 'Qual pasta (ou subpasta) o app Música trata como ponto de entrada para este grupo. Nada é exibido em Música, e nenhuma leitura de tags/capas é feita, até que uma seja escolhida.', + 'settings_node.audio_root_none': '— nenhuma escolhida —', + 'settings_node.audio_root_save': 'Salvar', + 'settings_node.audio_root_change_confirm': 'Alterar a raiz de Música substitui o que cada membro vê na aba Música. Continuar?', + 'settings_node.directories_title': 'Diretórios', + 'settings_node.directories_hint': 'Pastas compartilhadas, e qual delas os apps Vídeos e Música tratam como seu próprio ponto de entrada.', + // Create group wizard 'wizard.title': 'Criar grupo', 'wizard.detecting': 'Detectando node local…', diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js index 236747e..a26062d 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js @@ -155,6 +155,7 @@ export default { 'video.mode_flat': '平铺列表', 'video.empty': '未找到视频。', 'video.no_root_configured': '此群组尚未设置视频根目录 — 操作员可以在设置中选择一个。', + 'music.no_root_configured': '此群组尚未设置音乐根目录 — 操作员可以在设置中选择一个。', 'video.director': '导演', 'video.specials': '特别篇', 'video.season_n': '第 {n} 季', @@ -624,6 +625,14 @@ export default { 'settings_node.video_root_save': '保存', 'settings_node.video_root_change_confirm': '更改视频根目录会替换每位成员在"视频"标签页中看到的内容。是否继续?', + 'settings_node.audio_root_title': '音乐根目录', + 'settings_node.audio_root_hint': '该文件夹(或子文件夹)将作为此群组“音乐”应用的入口。在选择之前,“音乐”中不会显示任何内容,也不会读取任何标签/封面信息。', + 'settings_node.audio_root_none': '— 未选择 —', + 'settings_node.audio_root_save': '保存', + 'settings_node.audio_root_change_confirm': '更改音乐根目录会替换每位成员在“音乐”标签页中看到的内容。是否继续?', + 'settings_node.directories_title': '目录', + 'settings_node.directories_hint': '共享文件夹,以及“视频”和“音乐”应用各自使用哪个作为入口。', + // Create group wizard 'wizard.title': '创建群组', 'wizard.detecting': '正在检测本地 node…', |