aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/locales
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-08-21 17:50:08 +0200
committerChristophe Besson <cbesson@gmail.com>2026-08-21 17:50:08 +0200
commit73490d331179cb640828b8625abb75208cd7ae5f (patch)
tree5782835ae06d3f84c4a9c11c8babcec0d8126157 /packages/meshbay-hub/src/meshbay_hub/static/locales
parent8730281d739d9ed1d6f2d366772582eea8ba0294 (diff)
downloadmeshbay-73490d331179cb640828b8625abb75208cd7ae5f.tar.gz
feat: D.6 first-run wizard — detect, start, link, group, gek-init, pair
Desktop client guides new users through the full onboarding sequence without a terminal: detect local node → start daemon (systemd with direct-start fallback for dev) → link node key to hub → create group → attach directories → gek-init → operator pair. - node:detect returns configured field to distinguish missing vs stopped - node:start tries systemctl first, checks is-active, falls back to spawning the binary directly when the unit crashes (dev mode) - probeNode() extracts the shared config→token→fetch pattern - SetupWelcome on empty HomePage links to /create-group - CreateGroupWizard step 0 handles node detection and start - platform.js exposes node.installed() and node.start() - 12 setup.* i18n keys added to all 10 locales - Integration test for node:start fallback logic 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.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/en.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/es.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/it.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js14
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js14
10 files changed, 140 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 e309834..da2ada4 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js
@@ -467,4 +467,18 @@ export default {
'group.unmute': 'Unmute notifications',
'profile.title': 'Profil',
'usermenu.profile': 'Profil',
+
+ // First-run setup wizard
+ 'setup.welcome_title': 'Willkommen bei MeshBay',
+ 'setup.welcome_message': 'Ihr Node hostet Ihre Dateien — verschlüsselt, auf Ihrem Rechner. Starten wir ihn und erstellen Ihre erste Gruppe.',
+ 'setup.node_detected': 'Lokaler Node erkannt und läuft.',
+ 'setup.node_not_running': 'Ihr Node ist installiert, läuft aber nicht.',
+ 'setup.node_start': 'Node starten',
+ 'setup.node_starting': 'Node wird gestartet…',
+ 'setup.node_started': 'Node gestartet.',
+ 'setup.node_not_installed': 'meshbay-node ist auf diesem Rechner nicht installiert.',
+ 'setup.node_install_hint': 'Installieren Sie es mit Ihrem Paketmanager und kommen Sie hierher zurück.',
+ 'setup.skip': 'Überspringen — Gruppe ohne lokalen Node erstellen',
+ 'setup.create_group': 'Erste Gruppe erstellen',
+ 'setup.dismiss': 'Einrichtung überspringen',
};
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 9a5058e..3ddd7f1 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
@@ -366,6 +366,20 @@ export default {
'wizard.done_message': 'Your group is ready. Your node is hosting it and encryption is set up.',
'wizard.go_to_group': 'Go to group',
+ // First-run setup wizard (Electron-only)
+ 'setup.welcome_title': 'Welcome to MeshBay',
+ 'setup.welcome_message': 'Your node hosts your files — encrypted, on your machine. Let’s get it running and create your first group.',
+ 'setup.node_detected': 'Local node detected and running.',
+ 'setup.node_not_running': 'Your node is installed but not running.',
+ 'setup.node_start': 'Start node',
+ 'setup.node_starting': 'Starting node…',
+ 'setup.node_started': 'Node started.',
+ 'setup.node_not_installed': 'meshbay-node is not installed on this machine.',
+ 'setup.node_install_hint': 'Install it with your package manager, then come back here.',
+ 'setup.skip': 'Skip — create a group without a local node',
+ 'setup.create_group': 'Create your first group',
+ 'setup.dismiss': 'Skip setup',
+
// Unified Group Settings (node sections)
'settings_node.roots': 'Shared directories',
'settings_node.detach_failed_continue': 'Could not detach the group from the node. Delete on hub anyway?',
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 5a95347..90e310d 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js
@@ -462,4 +462,18 @@ export default {
'group.unmute': 'Unmute notifications',
'profile.title': 'Perfil',
'usermenu.profile': 'Perfil',
+
+ // First-run setup wizard
+ 'setup.welcome_title': 'Bienvenido a MeshBay',
+ 'setup.welcome_message': 'Su node aloja sus archivos — cifrados, en su máquina. Vamos a ponerlo en marcha y crear su primer grupo.',
+ 'setup.node_detected': 'Node local detectado y en funcionamiento.',
+ 'setup.node_not_running': 'Su node está instalado pero no se está ejecutando.',
+ 'setup.node_start': 'Iniciar node',
+ 'setup.node_starting': 'Iniciando node…',
+ 'setup.node_started': 'Node iniciado.',
+ 'setup.node_not_installed': 'meshbay-node no está instalado en esta máquina.',
+ 'setup.node_install_hint': 'Instálelo con su gestor de paquetes y vuelva aquí.',
+ 'setup.skip': 'Omitir — crear un grupo sin node local',
+ 'setup.create_group': 'Crear su primer grupo',
+ 'setup.dismiss': 'Omitir configuración',
};
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 4139fc9..fa7468f 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js
@@ -466,4 +466,18 @@ export default {
'group.unmute': 'Réactiver les notifications',
'profile.title': 'Profil',
'usermenu.profile': 'Profil',
+
+ // First-run setup wizard
+ 'setup.welcome_title': 'Bienvenue sur MeshBay',
+ 'setup.welcome_message': 'Votre node héberge vos fichiers — chiffrés, sur votre machine. Démarrons-le et créons votre premier groupe.',
+ 'setup.node_detected': 'Node local détecté et en fonctionnement.',
+ 'setup.node_not_running': 'Votre node est installé mais ne tourne pas.',
+ 'setup.node_start': 'Démarrer le node',
+ 'setup.node_starting': 'Démarrage du node…',
+ 'setup.node_started': 'Node démarré.',
+ 'setup.node_not_installed': 'meshbay-node n\'est pas installé sur cette machine.',
+ 'setup.node_install_hint': 'Installez-le avec votre gestionnaire de paquets, puis revenez ici.',
+ 'setup.skip': 'Passer — créer un groupe sans node local',
+ 'setup.create_group': 'Créer votre premier groupe',
+ 'setup.dismiss': 'Passer la configuration',
};
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 531c8f7..6d349b9 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js
@@ -464,4 +464,18 @@ export default {
'group.unmute': 'Unmute notifications',
'profile.title': 'Profilo',
'usermenu.profile': 'Profilo',
+
+ // First-run setup wizard
+ 'setup.welcome_title': 'Benvenuto su MeshBay',
+ 'setup.welcome_message': 'Il suo node ospita i suoi file — cifrati, sulla sua macchina. Avviamolo e creiamo il suo primo gruppo.',
+ 'setup.node_detected': 'Node locale rilevato e in funzione.',
+ 'setup.node_not_running': 'Il suo node è installato ma non è in esecuzione.',
+ 'setup.node_start': 'Avvia node',
+ 'setup.node_starting': 'Avvio del node…',
+ 'setup.node_started': 'Node avviato.',
+ 'setup.node_not_installed': 'meshbay-node non è installato su questa macchina.',
+ 'setup.node_install_hint': 'Lo installi con il suo gestore di pacchetti, poi torni qui.',
+ 'setup.skip': 'Salta — crea un gruppo senza node locale',
+ 'setup.create_group': 'Crea il suo primo gruppo',
+ 'setup.dismiss': 'Salta la configurazione',
};
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 1a68827..6f74073 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js
@@ -452,4 +452,18 @@ export default {
'group.unmute': 'Unmute notifications',
'profile.title': 'プロフィール',
'usermenu.profile': 'プロフィール',
+
+ // First-run setup wizard
+ 'setup.welcome_title': 'MeshBay へようこそ',
+ 'setup.welcome_message': 'お使いの node がファイルを暗号化してお使いのマシン上に保管します。node を起動して最初のグループを作成しましょう。',
+ 'setup.node_detected': 'ローカル node が検出され、実行中です。',
+ 'setup.node_not_running': 'node はインストールされていますが、実行されていません。',
+ 'setup.node_start': 'node を起動',
+ 'setup.node_starting': 'node を起動中…',
+ 'setup.node_started': 'Node が起動しました。',
+ 'setup.node_not_installed': 'この端末に meshbay-node がインストールされていません。',
+ 'setup.node_install_hint': 'パッケージマネージャーでインストールし、こちらにお戻りください。',
+ 'setup.skip': 'スキップ — ローカル node なしでグループを作成',
+ 'setup.create_group': '最初のグループを作成',
+ 'setup.dismiss': 'セットアップをスキップ',
};
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 d0c9649..f1c2b75 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
@@ -466,4 +466,18 @@ export default {
'group.unmute': 'Unmute notifications',
'profile.title': 'Profiel',
'usermenu.profile': 'Profiel',
+
+ // First-run setup wizard
+ 'setup.welcome_title': 'Welkom bij MeshBay',
+ 'setup.welcome_message': 'Uw node host uw bestanden — versleuteld, op uw machine. Laten we hem starten en uw eerste groep aanmaken.',
+ 'setup.node_detected': 'Lokale node gedetecteerd en actief.',
+ 'setup.node_not_running': 'Uw node is geïnstalleerd maar draait niet.',
+ 'setup.node_start': 'Node starten',
+ 'setup.node_starting': 'Node wordt gestart…',
+ 'setup.node_started': 'Node gestart.',
+ 'setup.node_not_installed': 'meshbay-node is niet geïnstalleerd op deze machine.',
+ 'setup.node_install_hint': 'Installeer het met uw pakketbeheerder en kom hier terug.',
+ 'setup.skip': 'Overslaan — groep aanmaken zonder lokale node',
+ 'setup.create_group': 'Eerste groep aanmaken',
+ 'setup.dismiss': 'Installatie overslaan',
};
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 630548b..e3f9270 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js
@@ -479,4 +479,18 @@ export default {
'group.unmute': 'Unmute notifications',
'profile.title': 'Profil',
'usermenu.profile': 'Profil',
+
+ // First-run setup wizard
+ 'setup.welcome_title': 'Witamy w MeshBay',
+ 'setup.welcome_message': 'Pana/Pani node przechowuje pliki — zaszyfrowane, na Pana/Pani maszynie. Uruchommy go i utwórzmy pierwszą grupę.',
+ 'setup.node_detected': 'Wykryto lokalny node — działa.',
+ 'setup.node_not_running': 'Node jest zainstalowany, ale nie działa.',
+ 'setup.node_start': 'Uruchom node',
+ 'setup.node_starting': 'Uruchamianie node…',
+ 'setup.node_started': 'Node uruchomiony.',
+ 'setup.node_not_installed': 'meshbay-node nie jest zainstalowany na tej maszynie.',
+ 'setup.node_install_hint': 'Zainstaluj go za pomocą menedżera pakietów, a potem wróć tutaj.',
+ 'setup.skip': 'Pomiń — utwórz grupę bez lokalnego node',
+ 'setup.create_group': 'Utwórz pierwszą grupę',
+ 'setup.dismiss': 'Pomiń konfigurację',
};
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 9a6809a..2b003c2 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
@@ -463,4 +463,18 @@ export default {
'group.unmute': 'Unmute notifications',
'profile.title': 'Perfil',
'usermenu.profile': 'Perfil',
+
+ // First-run setup wizard
+ 'setup.welcome_title': 'Bem-vindo ao MeshBay',
+ 'setup.welcome_message': 'Seu node hospeda seus arquivos — criptografados, na sua máquina. Vamos iniciá-lo e criar seu primeiro grupo.',
+ 'setup.node_detected': 'Node local detectado e em execução.',
+ 'setup.node_not_running': 'Seu node está instalado mas não está em execução.',
+ 'setup.node_start': 'Iniciar node',
+ 'setup.node_starting': 'Iniciando node…',
+ 'setup.node_started': 'Node iniciado.',
+ 'setup.node_not_installed': 'meshbay-node não está instalado nesta máquina.',
+ 'setup.node_install_hint': 'Instale-o com seu gerenciador de pacotes e volte aqui.',
+ 'setup.skip': 'Pular — criar um grupo sem node local',
+ 'setup.create_group': 'Criar seu primeiro grupo',
+ 'setup.dismiss': 'Pular configuração',
};
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 549b77e..bab41e1 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
@@ -438,4 +438,18 @@ export default {
'group.unmute': 'Unmute notifications',
'profile.title': '个人资料',
'usermenu.profile': '个人资料',
+
+ // First-run setup wizard
+ 'setup.welcome_title': '欢迎使用 MeshBay',
+ 'setup.welcome_message': '您的 node 在您自己的机器上加密存储文件。让我们启动它并创建您的第一个群组。',
+ 'setup.node_detected': '已检测到本地 node,正在运行。',
+ 'setup.node_not_running': '您的 node 已安装但未运行。',
+ 'setup.node_start': '启动 node',
+ 'setup.node_starting': '正在启动 node…',
+ 'setup.node_started': 'Node 已启动。',
+ 'setup.node_not_installed': '此机器上未安装 meshbay-node。',
+ 'setup.node_install_hint': '请使用包管理器安装,然后回到此处。',
+ 'setup.skip': '跳过 — 不使用本地 node 创建群组',
+ 'setup.create_group': '创建第一个群组',
+ 'setup.dismiss': '跳过设置',
};