aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/locales
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-08-28 15:35:20 +0200
committerChristophe Besson <cbesson@gmail.com>2026-08-28 15:35:58 +0200
commiteba2e6b14484c124f3c87ff95cd7ee640833e5d3 (patch)
treeba109b719c879df3ea40090e4fd6ff80b403a3a5 /packages/meshbay-hub/src/meshbay_hub/static/locales
parente6917349c47cc4b7e04e1ecfab27c5291a5fe522 (diff)
downloadmeshbay-eba2e6b14484c124f3c87ff95cd7ee640833e5d3.tar.gz
feat(hub): cross-group search with reuse of existing views
Search page fetches indexes from all groups, then renders consolidated entries through the existing FilesPanel, VideoApp, and MusicApp components — no reimplemented views. Groups appear as top-level directories in the file browser; video/music entries use a synthetic root with per-entry transport refs for thumbnails and metadata across groups. Music player lifted to app.js with getConnection(groupId) for cross-group playback. Connection pool (max 3, LRU eviction) manages lazy WebRTC connections. All 10 locales updated with search keys. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/de.js12
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/en.js16
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/es.js11
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js11
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/it.js11
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js11
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js11
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js11
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js11
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js11
10 files changed, 71 insertions, 45 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 f8daa16..e64d910 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js
@@ -522,16 +522,18 @@ export default {
'search.title': 'Dateien suchen',
'search.placeholder': 'In allen Gruppen suchen …',
'search.no_results': 'Keine Datei entspricht Ihrer Suche.',
- 'search.synced': 'synchronisiert {ago}',
- 'search.cache_note': 'Die Suche stützt sich auf den Stand, den jede Gruppe beim '
- + 'letzten Öffnen hatte. Öffnen Sie eine Gruppe, um ihre Dateien hier zu '
- + 'aktualisieren.',
'search.col_group': 'Gruppe',
'search.result_count': {
one: '{n} Datei gefunden',
other: '{n} Dateien gefunden',
},
- 'search.hint': 'Durchsucht Dateinamen in allen zwischengespeicherten Gruppenindexen.',
+ 'search.hint': 'Tippen Sie einen Begriff ein, um in allen Ihren Gruppen zu suchen.',
+ 'search.indexing': 'Indexierung von {done} / {total} Gruppen …',
+ 'search.unreachable': { one: '{n} Gruppe nicht erreichbar', other: '{n} Gruppen nicht erreichbar' },
+ 'search.view_files': 'Dateien',
+ 'search.view_videos': 'Videos',
+ 'search.view_music': 'Musik',
+ 'search.connecting': 'Verbindung zu Gruppen wird hergestellt …',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'Ein Node, der diese Gruppe hostet, ist online',
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 7cb3769..06d54a7 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
@@ -603,15 +603,15 @@ export default {
'search.title': 'Search Files',
'search.placeholder': 'Search across all groups...',
'search.no_results': 'No files match your search.',
- 'search.synced': 'synced {ago}',
- 'search.cache_note': 'Search reads what each group looked like the last time you '
- + 'opened it. Open a group to bring its files up to date here.',
'search.col_group': 'Group',
- 'search.result_count': {
- one: '{n} file found',
- other: '{n} files found',
- },
- 'search.hint': 'Search file names across all cached group indexes.',
+ 'search.result_count': { one: '{n} file found', other: '{n} files found' },
+ 'search.hint': 'Type to search file names across all your groups.',
+ 'search.indexing': 'Indexing {done} / {total} groups...',
+ 'search.unreachable': { one: '{n} group unreachable', other: '{n} groups unreachable' },
+ 'search.view_files': 'Files',
+ 'search.view_videos': 'Videos',
+ 'search.view_music': 'Music',
+ 'search.connecting': 'Connecting to groups...',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'A node serving this group is online',
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 ba64ee0..af211c6 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js
@@ -518,15 +518,18 @@ export default {
'search.title': 'Buscar archivos',
'search.placeholder': 'Buscar en todos los grupos...',
'search.no_results': 'Ningún archivo coincide con su búsqueda.',
- 'search.synced': 'sincronizado {ago}',
- 'search.cache_note': 'La búsqueda usa el estado que tenía cada grupo la última vez '
- + 'que lo abrió. Abra un grupo para poner sus archivos al día aquí.',
'search.col_group': 'Grupo',
'search.result_count': {
one: '{n} archivo encontrado',
other: '{n} archivos encontrados',
},
- 'search.hint': 'Busca nombres de archivo en todos los índices de grupo en caché.',
+ 'search.hint': 'Escriba un término para buscar en todos sus grupos.',
+ 'search.indexing': 'Indexando {done} / {total} grupos…',
+ 'search.unreachable': { one: '{n} grupo inalcanzable', other: '{n} grupos inalcanzables' },
+ 'search.view_files': 'Archivos',
+ 'search.view_videos': 'Vídeos',
+ 'search.view_music': 'Música',
+ 'search.connecting': 'Conectando a los grupos…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'Un node que sirve este grupo está en línea',
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 60e56c9..92ab2b9 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js
@@ -522,15 +522,18 @@ export default {
'search.title': 'Rechercher des fichiers',
'search.placeholder': 'Rechercher dans tous les groupes...',
'search.no_results': 'Aucun fichier ne correspond à votre recherche.',
- 'search.synced': 'synchronisé {ago}',
- 'search.cache_note': 'La recherche s’appuie sur l’état de chaque groupe lors de '
- + 'votre dernière visite. Ouvrez un groupe pour mettre ses fichiers à jour ici.',
'search.col_group': 'Groupe',
'search.result_count': {
one: '{n} fichier trouvé',
other: '{n} fichiers trouvés',
},
- 'search.hint': 'Recherche les noms de fichiers dans tous les index de groupe en cache.',
+ 'search.hint': 'Saisissez un terme pour rechercher dans tous vos groupes.',
+ 'search.indexing': 'Indexation de {done} / {total} groupes…',
+ 'search.unreachable': { one: '{n} groupe injoignable', other: '{n} groupes injoignables' },
+ 'search.view_files': 'Fichiers',
+ 'search.view_videos': 'Vidéos',
+ 'search.view_music': 'Musique',
+ 'search.connecting': 'Connexion aux groupes…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'Un node servant ce groupe est en ligne',
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 ccf54ed..201fdfc 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js
@@ -520,15 +520,18 @@ export default {
'search.title': 'Cerca file',
'search.placeholder': 'Cerca in tutti i gruppi...',
'search.no_results': 'Nessun file corrisponde alla sua ricerca.',
- 'search.synced': 'sincronizzato {ago}',
- 'search.cache_note': 'La ricerca si basa su com’era ogni gruppo l’ultima volta che '
- + 'lo ha aperto. Apra un gruppo per aggiornarne qui i file.',
'search.col_group': 'Gruppo',
'search.result_count': {
one: '{n} file trovato',
other: '{n} file trovati',
},
- 'search.hint': 'Cerca i nomi dei file in tutti gli indici di gruppo in cache.',
+ 'search.hint': 'Digita un termine per cercare in tutti i tuoi gruppi.',
+ 'search.indexing': 'Indicizzazione di {done} / {total} gruppi…',
+ 'search.unreachable': { one: '{n} gruppo non raggiungibile', other: '{n} gruppi non raggiungibili' },
+ 'search.view_files': 'File',
+ 'search.view_videos': 'Video',
+ 'search.view_music': 'Musica',
+ 'search.connecting': 'Connessione ai gruppi…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'Un node che ospita questo gruppo è online',
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 2ea90cb..a421e25 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js
@@ -509,14 +509,17 @@ export default {
'search.title': 'ファイルを検索',
'search.placeholder': 'すべてのグループから検索…',
'search.no_results': '検索条件に一致するファイルはありません。',
- 'search.synced': '{ago}に同期',
- 'search.cache_note': '検索は、各グループを最後に開いたときの状態を参照します。'
- + 'グループを開くと、そのファイルがここで最新になります。',
'search.col_group': 'グループ',
'search.result_count': {
other: '{n} 個のファイルが見つかりました',
},
- 'search.hint': 'キャッシュされたすべてのグループインデックスからファイル名を検索します。',
+ 'search.hint': '入力してすべてのグループを検索します。',
+ 'search.indexing': '{done} / {total} グループをインデックス中…',
+ 'search.unreachable': { other: '{n} グループに接続できません' },
+ 'search.view_files': 'ファイル',
+ 'search.view_videos': '動画',
+ 'search.view_music': '音楽',
+ 'search.connecting': 'グループに接続中…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'このグループをホストする 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 4b7ff12..b2e3b24 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
@@ -522,15 +522,18 @@ export default {
'search.title': 'Bestanden zoeken',
'search.placeholder': 'In alle groepen zoeken...',
'search.no_results': 'Geen bestand voldoet aan uw zoekopdracht.',
- 'search.synced': 'gesynchroniseerd {ago}',
- 'search.cache_note': 'De zoekopdracht gaat uit van hoe elke groep eruitzag toen u '
- + 'die voor het laatst opende. Open een groep om de bestanden hier bij te werken.',
'search.col_group': 'Groep',
'search.result_count': {
one: '{n} bestand gevonden',
other: '{n} bestanden gevonden',
},
- 'search.hint': 'Zoekt bestandsnamen in alle groepsindexen in de cache.',
+ 'search.hint': 'Typ een zoekterm om in al uw groepen te zoeken.',
+ 'search.indexing': '{done} / {total} groepen indexeren…',
+ 'search.unreachable': { one: '{n} groep onbereikbaar', other: '{n} groepen onbereikbaar' },
+ 'search.view_files': 'Bestanden',
+ 'search.view_videos': 'Video\'s',
+ 'search.view_music': 'Muziek',
+ 'search.connecting': 'Verbinding maken met groepen…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'Een node die deze groep host is online',
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 611c412..2c2bacd 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js
@@ -539,9 +539,6 @@ export default {
'search.title': 'Wyszukiwanie plików',
'search.placeholder': 'Szukaj we wszystkich grupach...',
'search.no_results': 'Żaden plik nie pasuje do zapytania.',
- 'search.synced': 'zsynchronizowano {ago}',
- 'search.cache_note': 'Wyszukiwanie opiera się na stanie każdej grupy z chwili jej '
- + 'ostatniego otwarcia. Otwarcie grupy odświeża tutaj jej pliki.',
'search.col_group': 'Grupa',
'search.result_count': {
one: 'Znaleziono {n} plik',
@@ -549,7 +546,13 @@ export default {
many: 'Znaleziono {n} plików',
other: 'Znaleziono {n} pliku',
},
- 'search.hint': 'Przeszukuje nazwy plików we wszystkich zbuforowanych indeksach grup.',
+ 'search.hint': 'Wpisz frazę, aby wyszukać we wszystkich grupach.',
+ 'search.indexing': 'Indeksowanie {done} / {total} grup…',
+ 'search.unreachable': { one: '{n} grupa nieosiągalna', few: '{n} grupy nieosiągalne', many: '{n} grup nieosiągalnych', other: '{n} grupy nieosiągalnej' },
+ 'search.view_files': 'Pliki',
+ 'search.view_videos': 'Filmy',
+ 'search.view_music': 'Muzyka',
+ 'search.connecting': 'Łączenie z grupami…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'Node hostujący tę grupę jest dostępny',
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 74e5047..96dbc75 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
@@ -519,15 +519,18 @@ export default {
'search.title': 'Pesquisar arquivos',
'search.placeholder': 'Pesquisar em todos os grupos...',
'search.no_results': 'Nenhum arquivo corresponde à sua pesquisa.',
- 'search.synced': 'sincronizado {ago}',
- 'search.cache_note': 'A pesquisa usa o estado de cada grupo na última vez que você o '
- + 'abriu. Abra um grupo para atualizar os arquivos dele aqui.',
'search.col_group': 'Grupo',
'search.result_count': {
one: '{n} arquivo encontrado',
other: '{n} arquivos encontrados',
},
- 'search.hint': 'Pesquisa nomes de arquivo em todos os índices de grupo em cache.',
+ 'search.hint': 'Digite um termo para pesquisar em todos os seus grupos.',
+ 'search.indexing': 'Indexando {done} / {total} grupos…',
+ 'search.unreachable': { one: '{n} grupo inacessível', other: '{n} grupos inacessíveis' },
+ 'search.view_files': 'Arquivos',
+ 'search.view_videos': 'Vídeos',
+ 'search.view_music': 'Música',
+ 'search.connecting': 'Conectando aos grupos…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'Um node que hospeda este grupo está on-line',
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 d2e6b48..45d89f7 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
@@ -495,14 +495,17 @@ export default {
'search.title': '搜索文件',
'search.placeholder': '在所有群组中搜索…',
'search.no_results': '没有文件符合您的搜索。',
- 'search.synced': '{ago}同步',
- 'search.cache_note': '搜索依据的是您上次打开每个群组时的状态。'
- + '打开某个群组,即可在此更新它的文件。',
'search.col_group': '群组',
'search.result_count': {
other: '找到 {n} 个文件',
},
- 'search.hint': '在所有已缓存的群组索引中搜索文件名。',
+ 'search.hint': '输入关键词搜索所有群组。',
+ 'search.indexing': '正在索引 {done} / {total} 个群组…',
+ 'search.unreachable': { other: '{n} 个群组无法连接' },
+ 'search.view_files': '文件',
+ 'search.view_videos': '视频',
+ 'search.view_music': '音乐',
+ 'search.connecting': '正在连接群组…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': '有一个服务本群组的 node 在线',