diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-06 19:03:22 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-06 19:03:22 +0200 |
| commit | ab44526a291fa673aa2850d105f6412a70a5341f (patch) | |
| tree | 5940f18acfc15fc732eb65d90de346920461b8c8 /packages/meshbay-hub/src/meshbay_hub/static/locales | |
| parent | 85a2ec47b7ad334208a3dbb091fadccc7631785c (diff) | |
| download | meshbay-ab44526a291fa673aa2850d105f6412a70a5341f.tar.gz | |
feat(client): Phase 2 — per-app settings panes, folder tree, multi-directory
Each app's settings were inlined in `group-settings.js` — TMDB, MusicBrainz,
and one folder picker per app, each with its own draft state and save handler
saying the same thing about a different key. They are one file per app now,
reached through the `apps.js` registry, and the page that renders them names no
application at all: adding one is a registry entry and a settings file.
The line between the two is what makes that true. What every app has — folders
— the page does generically, through one `saveDirectories` bound to the app.
What one app alone has, its pane does itself with the transport it is handed.
An app that only needs directories touches neither `group-settings.js` nor
`group-page.js`, which is `test_app_settings_plugin.py`'s subject.
`settings-ui.js` exists because a pane importing the page that renders it is a
cycle, and ES modules answer that with a temporal-dead-zone ReferenceError at
first render — a component that silently does not appear, the fault already
recorded in CLAUDE.md about hook ordering.
The flat depth-indented `<select>` of every folder in the library becomes a
modal tree. It asks the node for nothing: the tree is derived from paths the
client already holds, so it shows exactly what the group's index contains and
adds no folder-browsing protocol. For Chat's attachment folder — the one
directory that is written to rather than read — read-only roots are greyed
out, so the node's refusal arrives before the operator picks rather than when
somebody sends a file.
Videos and Music take a list of folders. A library on two drives could not be
described before; the only recourse was pointing the app at a parent containing
both, which pulls in everything else under it. The scalar shapes survive on the
wire alone, for a node speaking MNP 1.0, and the client reads them as a
one-element list.
Two things the tests caught that I would not have:
`test_asset_versioning` — six new modules were missing from `_ASSETS`. Reached
through the registry rather than imported by name, they are exactly the files
nothing else would notice changing, and a stale one is served from cache with
no version bump.
And `node --check foo.js` does **not** reliably report a module syntax error:
it accepted `${/* ... */''}` — htm template syntax pasted into a plain object
literal — and reported success. A `.mjs` copy forces the module parser and
reports it. The suite had no syntax check at all, which is how that reached a
file; `test_spa_syntax.py` does it for every module now, and pins that the
loose path is not what it uses.
Suite: 12 failures, all pre-existing.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011pvMdvLBG92jyhvD5pD6us
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales')
10 files changed, 270 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 ea14814..d5d1429 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js @@ -818,6 +818,33 @@ export default { 'settings_node.photo_roots_save': 'Speichern', 'settings_node.shared_directories_title': 'Freigegebene Verzeichnisse', 'settings_node.shared_directories_hint': 'Ordner, die mit dieser Gruppe geteilt werden. Lesen/Schreiben umschalten, um Uploads zu erlauben. Als wechselbar markieren für externe Laufwerke.', + 'folder_tree.title_single': 'Ordner auswählen', + 'folder_tree.title_multi': 'Ordner auswählen', + 'folder_tree.choose': 'Auswählen…', + 'folder_tree.confirm': 'Übernehmen', + 'folder_tree.expand': 'Aufklappen', + 'folder_tree.collapse': 'Zuklappen', + 'folder_tree.nothing_selected': 'Nichts ausgewählt', + 'folder_tree.empty': 'Diese Gruppe hat noch keine freigegebenen Verzeichnisse.', + 'folder_tree.writable_only': 'Hier sind nur les- und beschreibbare Verzeichnisse wählbar — es wird hineingeschrieben.', + 'folder_tree.no_writable_root': 'Diese Gruppe hat kein beschreibbares Verzeichnis. Schalten Sie zuerst eines unter Freigegebene Verzeichnisse frei.', + 'folder_tree.read_only_blocked': 'Nur lesen — kein Schreiben möglich', + 'settings_app.save': 'Speichern', + 'settings_app.saving': 'Wird gespeichert…', + 'settings_app.disabled_hint': 'Schalten Sie diese App ein, um sie zu konfigurieren.', + 'settings_app.video_directories_label': 'Video-Ordner', + 'settings_app.video_directories_hint': 'Wo die Filme und Serien dieser Gruppe liegen. Nichts außerhalb erscheint im Videos-Tab.', + 'settings_app.music_directories_label': 'Musik-Ordner', + 'settings_app.music_directories_hint': 'Wo die Alben dieser Gruppe liegen. Nichts außerhalb erscheint im Musik-Tab.', + 'settings_app.photo_directories_label': 'Foto-Ordner', + 'settings_app.photo_directories_hint': 'Wo die Alben dieser Gruppe liegen. Nichts außerhalb erscheint im Fotos-Tab.', + 'settings_app.chat_directory_label': 'Ordner für Anhänge', + 'settings_app.chat_directory_hint': 'Wohin im Chat gesendete Dateien geschrieben werden. Muss ein beschreibbares Verzeichnis sein.', + 'settings_app.chat_no_writable_root': 'Diese Gruppe hat kein beschreibbares Verzeichnis, daher sind Anhänge aus.', + 'settings_app.chat_link_preview_label': 'Link-Vorschauen', + 'settings_app.chat_link_preview_hint': 'Postet ein Mitglied einen Link, holt der Node Titel und Bild der Seite. Das ist eine Anfrage von Ihrem Rechner an eine Website, die jemand anderes gewählt hat.', + 'settings_app.tmdb_token_prompt': 'Registrieren Sie sich bei TMDB, um einen eigenen API-Schlüssel zu erzeugen.', + 'settings_app.tmdb_token_link': 'Schlüssel holen', 'settings_node.roots_offline_hint': 'Nicht mit dem Node verbunden — Änderungen laufen über den lokalen Node und greifen beim nächsten Neuladen.', 'settings_node.directories_title': 'App-Verzeichnisse', 'settings_node.directories_hint': 'Freigegebene Ordner und welchen davon die Videos-, Musik- und Fotos-Apps als eigene(n) Einstiegspunkt(e) nutzen.', 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 cbb790f..8c5cbe5 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js @@ -606,6 +606,33 @@ export default { 'settings_node.photo_roots_save': 'Save', 'settings_node.shared_directories_title': 'Shared directories', 'settings_node.shared_directories_hint': 'Folders shared with this group. Toggle read-write to allow uploads, mark as removable for external drives.', + 'folder_tree.title_single': 'Choose a folder', + 'folder_tree.title_multi': 'Choose folders', + 'folder_tree.choose': 'Choose…', + 'folder_tree.confirm': 'Use these', + 'folder_tree.expand': 'Expand', + 'folder_tree.collapse': 'Collapse', + 'folder_tree.nothing_selected': 'Nothing selected', + 'folder_tree.empty': 'This group has no shared directories yet.', + 'folder_tree.writable_only': 'Only read-write directories can be chosen here — files are written to this one.', + 'folder_tree.no_writable_root': 'This group has no read-write directory. Make one read-write in Shared directories first.', + 'folder_tree.read_only_blocked': 'Read-only — cannot be written to', + 'settings_app.save': 'Save', + 'settings_app.saving': 'Saving…', + 'settings_app.disabled_hint': 'Turn this app on to configure it.', + 'settings_app.video_directories_label': 'Video folders', + 'settings_app.video_directories_hint': 'Where this group\'s films and shows live. Nothing outside them appears in the Videos tab.', + 'settings_app.music_directories_label': 'Music folders', + 'settings_app.music_directories_hint': 'Where this group\'s albums live. Nothing outside them appears in the Music tab.', + 'settings_app.photo_directories_label': 'Photo folders', + 'settings_app.photo_directories_hint': 'Where this group\'s albums live. Nothing outside them appears in the Photos tab.', + 'settings_app.chat_directory_label': 'Attachment folder', + 'settings_app.chat_directory_hint': 'Where files sent in chat are written. Must be a read-write directory.', + 'settings_app.chat_no_writable_root': 'This group has no read-write directory, so attachments are off.', + 'settings_app.chat_link_preview_label': 'Link previews', + 'settings_app.chat_link_preview_hint': 'When a member posts a link, the node fetches the page\'s title and image. That is a request from your machine to a site somebody else chose.', + 'settings_app.tmdb_token_prompt': 'Sign up on TMDB to generate your own API key.', + 'settings_app.tmdb_token_link': 'Get a key', 'settings_node.roots_offline_hint': 'Not connected to the node — changes go through the local node instead, and take effect on its next reload.', 'settings_node.directories_title': 'App directories', 'settings_node.directories_hint': 'Which shared folders the Videos, Music and Photos apps use as their entry point(s).', 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 3921532..4a7384f 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js @@ -814,6 +814,33 @@ export default { 'settings_node.photo_roots_save': 'Guardar', 'settings_node.shared_directories_title': 'Directorios compartidos', 'settings_node.shared_directories_hint': 'Carpetas compartidas con este grupo. Active lectura-escritura para permitir subidas, marque como extraíble para unidades externas.', + 'folder_tree.title_single': 'Elegir una carpeta', + 'folder_tree.title_multi': 'Elegir carpetas', + 'folder_tree.choose': 'Elegir…', + 'folder_tree.confirm': 'Usar', + 'folder_tree.expand': 'Expandir', + 'folder_tree.collapse': 'Contraer', + 'folder_tree.nothing_selected': 'Nada seleccionado', + 'folder_tree.empty': 'Este grupo aún no tiene directorios compartidos.', + 'folder_tree.writable_only': 'Aquí solo se pueden elegir directorios de lectura-escritura: se escriben archivos en él.', + 'folder_tree.no_writable_root': 'Este grupo no tiene ningún directorio de escritura. Activa primero lectura-escritura en Directorios compartidos.', + 'folder_tree.read_only_blocked': 'Solo lectura: no se puede escribir', + 'settings_app.save': 'Guardar', + 'settings_app.saving': 'Guardando…', + 'settings_app.disabled_hint': 'Activa esta aplicación para configurarla.', + 'settings_app.video_directories_label': 'Carpetas de vídeo', + 'settings_app.video_directories_hint': 'Dónde están las películas y series de este grupo. Nada fuera de ellas aparece en la pestaña Vídeos.', + 'settings_app.music_directories_label': 'Carpetas de música', + 'settings_app.music_directories_hint': 'Dónde están los álbumes de este grupo. Nada fuera de ellos aparece en la pestaña Música.', + 'settings_app.photo_directories_label': 'Carpetas de fotos', + 'settings_app.photo_directories_hint': 'Dónde están los álbumes de este grupo. Nada fuera de ellos aparece en la pestaña Fotos.', + 'settings_app.chat_directory_label': 'Carpeta de adjuntos', + 'settings_app.chat_directory_hint': 'Dónde se escriben los archivos enviados en el chat. Debe ser un directorio de lectura-escritura.', + 'settings_app.chat_no_writable_root': 'Este grupo no tiene directorio de escritura, así que los adjuntos están desactivados.', + 'settings_app.chat_link_preview_label': 'Vistas previas de enlaces', + 'settings_app.chat_link_preview_hint': 'Cuando un miembro publica un enlace, el nodo obtiene el título y la imagen de la página. Es una petición desde tu máquina a un sitio que eligió otra persona.', + 'settings_app.tmdb_token_prompt': 'Regístrate en TMDB para generar tu propia clave de API.', + 'settings_app.tmdb_token_link': 'Obtener una clave', 'settings_node.roots_offline_hint': 'Sin conexión con el nodo: los cambios pasan por el nodo local y se aplican en su próxima recarga.', 'settings_node.directories_title': 'Directorios de apps', 'settings_node.directories_hint': 'Carpetas compartidas, y cuál de ellas usan las apps de Vídeos, Música y Fotos como su(s) propio(s) punto(s) de entrada.', 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 4e60eb9..bee4ae9 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js @@ -832,6 +832,33 @@ export default { 'settings_node.photo_roots_save': 'Enregistrer', 'settings_node.shared_directories_title': 'Répertoires partagés', 'settings_node.shared_directories_hint': 'Dossiers partagés avec ce groupe. Activez lecture-écriture pour autoriser les envois, marquez comme amovible pour les disques externes.', + 'folder_tree.title_single': 'Choisir un dossier', + 'folder_tree.title_multi': 'Choisir des dossiers', + 'folder_tree.choose': 'Choisir…', + 'folder_tree.confirm': 'Utiliser', + 'folder_tree.expand': 'Déplier', + 'folder_tree.collapse': 'Replier', + 'folder_tree.nothing_selected': 'Rien de sélectionné', + 'folder_tree.empty': 'Ce groupe n\'a pas encore de répertoire partagé.', + 'folder_tree.writable_only': 'Seuls les répertoires en lecture-écriture sont proposés ici — des fichiers y sont écrits.', + 'folder_tree.no_writable_root': 'Ce groupe n\'a aucun répertoire en écriture. Activez d\'abord lecture-écriture dans Répertoires partagés.', + 'folder_tree.read_only_blocked': 'Lecture seule — écriture impossible', + 'settings_app.save': 'Enregistrer', + 'settings_app.saving': 'Enregistrement…', + 'settings_app.disabled_hint': 'Activez cette application pour la configurer.', + 'settings_app.video_directories_label': 'Dossiers vidéo', + 'settings_app.video_directories_hint': 'Où vivent les films et séries de ce groupe. Rien en dehors n\'apparaît dans l\'onglet Vidéos.', + 'settings_app.music_directories_label': 'Dossiers musique', + 'settings_app.music_directories_hint': 'Où vivent les albums de ce groupe. Rien en dehors n\'apparaît dans l\'onglet Musique.', + 'settings_app.photo_directories_label': 'Dossiers photo', + 'settings_app.photo_directories_hint': 'Où vivent les albums de ce groupe. Rien en dehors n\'apparaît dans l\'onglet Photos.', + 'settings_app.chat_directory_label': 'Dossier des pièces jointes', + 'settings_app.chat_directory_hint': 'Où sont écrits les fichiers envoyés dans le chat. Doit être un répertoire en lecture-écriture.', + 'settings_app.chat_no_writable_root': 'Ce groupe n\'a aucun répertoire en écriture : les pièces jointes sont désactivées.', + 'settings_app.chat_link_preview_label': 'Aperçus des liens', + 'settings_app.chat_link_preview_hint': 'Quand un membre poste un lien, le nœud récupère le titre et l\'image de la page. C\'est une requête depuis votre machine vers un site choisi par quelqu\'un d\'autre.', + 'settings_app.tmdb_token_prompt': 'Créez un compte TMDB pour générer votre propre clé d\'API.', + 'settings_app.tmdb_token_link': 'Obtenir une clé', 'settings_node.roots_offline_hint': 'Non connecté au nœud — les changements passent par le nœud local et prennent effet à son prochain rechargement.', 'settings_node.directories_title': 'Répertoires des applications', 'settings_node.directories_hint': 'Quel(s) dossier(s) partagés les applications Vidéos, Musique et Photos utilisent comme leur(s) propre(s) point(s) d\'entrée.', 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 38fc241..e39d91d 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js @@ -828,6 +828,33 @@ export default { 'settings_node.photo_roots_save': 'Salva', 'settings_node.shared_directories_title': 'Directory condivise', 'settings_node.shared_directories_hint': 'Cartelle condivise con questo gruppo. Attiva lettura-scrittura per consentire il caricamento, segna come rimovibile per unità esterne.', + 'folder_tree.title_single': 'Scegli una cartella', + 'folder_tree.title_multi': 'Scegli le cartelle', + 'folder_tree.choose': 'Scegli…', + 'folder_tree.confirm': 'Usa', + 'folder_tree.expand': 'Espandi', + 'folder_tree.collapse': 'Comprimi', + 'folder_tree.nothing_selected': 'Niente selezionato', + 'folder_tree.empty': 'Questo gruppo non ha ancora directory condivise.', + 'folder_tree.writable_only': 'Qui si possono scegliere solo directory in lettura-scrittura: ci vengono scritti dei file.', + 'folder_tree.no_writable_root': 'Questo gruppo non ha directory scrivibili. Attiva prima lettura-scrittura in Directory condivise.', + 'folder_tree.read_only_blocked': 'Sola lettura: non vi si può scrivere', + 'settings_app.save': 'Salva', + 'settings_app.saving': 'Salvataggio…', + 'settings_app.disabled_hint': 'Attiva questa applicazione per configurarla.', + 'settings_app.video_directories_label': 'Cartelle video', + 'settings_app.video_directories_hint': 'Dove si trovano film e serie di questo gruppo. Nulla al di fuori compare nella scheda Video.', + 'settings_app.music_directories_label': 'Cartelle musica', + 'settings_app.music_directories_hint': 'Dove si trovano gli album di questo gruppo. Nulla al di fuori compare nella scheda Musica.', + 'settings_app.photo_directories_label': 'Cartelle foto', + 'settings_app.photo_directories_hint': 'Dove si trovano gli album di questo gruppo. Nulla al di fuori compare nella scheda Foto.', + 'settings_app.chat_directory_label': 'Cartella degli allegati', + 'settings_app.chat_directory_hint': 'Dove vengono scritti i file inviati in chat. Deve essere una directory in lettura-scrittura.', + 'settings_app.chat_no_writable_root': 'Questo gruppo non ha directory scrivibili, quindi gli allegati sono disattivati.', + 'settings_app.chat_link_preview_label': 'Anteprime dei link', + 'settings_app.chat_link_preview_hint': 'Quando un membro pubblica un link, il nodo recupera titolo e immagine della pagina. È una richiesta dalla tua macchina a un sito scelto da qualcun altro.', + 'settings_app.tmdb_token_prompt': 'Registrati su TMDB per generare la tua chiave API.', + 'settings_app.tmdb_token_link': 'Ottieni una chiave', 'settings_node.roots_offline_hint': 'Non connesso al nodo: le modifiche passano dal nodo locale e hanno effetto al successivo ricaricamento.', 'settings_node.directories_title': 'Directory delle app', 'settings_node.directories_hint': 'Cartelle condivise, e quale di esse le app Video, Musica e Foto usano come proprio/i punto/i di ingresso.', 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 7890ab7..75a3aa2 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js @@ -812,6 +812,33 @@ export default { 'settings_node.photo_roots_save': '保存', 'settings_node.shared_directories_title': '共有ディレクトリ', 'settings_node.shared_directories_hint': 'このグループと共有されているフォルダー。読み書きを切り替えてアップロードを許可し、外付けドライブにはリムーバブルを設定します。', + 'folder_tree.title_single': 'フォルダーを選択', + 'folder_tree.title_multi': 'フォルダーを選択', + 'folder_tree.choose': '選択…', + 'folder_tree.confirm': '決定', + 'folder_tree.expand': '展開', + 'folder_tree.collapse': '折りたたむ', + 'folder_tree.nothing_selected': '未選択', + 'folder_tree.empty': 'このグループにはまだ共有ディレクトリがありません。', + 'folder_tree.writable_only': 'ここには読み書き可能なディレクトリしか選べません — ファイルが書き込まれます。', + 'folder_tree.no_writable_root': 'このグループには書き込み可能なディレクトリがありません。まず「共有ディレクトリ」で読み書きを有効にしてください。', + 'folder_tree.read_only_blocked': '読み取り専用 — 書き込みできません', + 'settings_app.save': '保存', + 'settings_app.saving': '保存中…', + 'settings_app.disabled_hint': 'このアプリを有効にすると設定できます。', + 'settings_app.video_directories_label': '動画フォルダー', + 'settings_app.video_directories_hint': 'このグループの映画や番組がある場所です。それ以外は動画タブに表示されません。', + 'settings_app.music_directories_label': '音楽フォルダー', + 'settings_app.music_directories_hint': 'このグループのアルバムがある場所です。それ以外は音楽タブに表示されません。', + 'settings_app.photo_directories_label': '写真フォルダー', + 'settings_app.photo_directories_hint': 'このグループのアルバムがある場所です。それ以外は写真タブに表示されません。', + 'settings_app.chat_directory_label': '添付ファイルのフォルダー', + 'settings_app.chat_directory_hint': 'チャットで送られたファイルの書き込み先です。読み書き可能なディレクトリである必要があります。', + 'settings_app.chat_no_writable_root': 'このグループには書き込み可能なディレクトリがないため、添付は無効です。', + 'settings_app.chat_link_preview_label': 'リンクのプレビュー', + 'settings_app.chat_link_preview_hint': 'メンバーがリンクを投稿すると、ノードがページのタイトルと画像を取得します。これは他人が選んだサイトへの、あなたのマシンからのリクエストです。', + 'settings_app.tmdb_token_prompt': 'TMDB に登録して、自分の API キーを発行してください。', + 'settings_app.tmdb_token_link': 'キーを取得', 'settings_node.roots_offline_hint': 'ノードに接続していません — 変更はローカルノード経由で行われ、次回の再読み込みで反映されます。', 'settings_node.directories_title': 'アプリのディレクトリ', 'settings_node.directories_hint': '共有フォルダと、動画・音楽・写真の各アプリがそれぞれの起点として使用するフォルダです。', 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 cdd4720..7070288 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js @@ -830,6 +830,33 @@ export default { 'settings_node.photo_roots_save': 'Opslaan', 'settings_node.shared_directories_title': 'Gedeelde mappen', 'settings_node.shared_directories_hint': 'Mappen gedeeld met deze groep. Schakel lezen-schrijven in om uploads toe te staan, markeer als verwijderbaar voor externe schijven.', + 'folder_tree.title_single': 'Kies een map', + 'folder_tree.title_multi': 'Kies mappen', + 'folder_tree.choose': 'Kiezen…', + 'folder_tree.confirm': 'Gebruiken', + 'folder_tree.expand': 'Uitklappen', + 'folder_tree.collapse': 'Inklappen', + 'folder_tree.nothing_selected': 'Niets geselecteerd', + 'folder_tree.empty': 'Deze groep heeft nog geen gedeelde mappen.', + 'folder_tree.writable_only': 'Hier zijn alleen lees-schrijfmappen te kiezen — er wordt in geschreven.', + 'folder_tree.no_writable_root': 'Deze groep heeft geen beschrijfbare map. Zet er eerst één op lezen-schrijven bij Gedeelde mappen.', + 'folder_tree.read_only_blocked': 'Alleen-lezen — kan niet worden beschreven', + 'settings_app.save': 'Opslaan', + 'settings_app.saving': 'Opslaan…', + 'settings_app.disabled_hint': 'Zet deze app aan om hem in te stellen.', + 'settings_app.video_directories_label': 'Videomappen', + 'settings_app.video_directories_hint': 'Waar de films en series van deze groep staan. Niets daarbuiten verschijnt op het tabblad Video\'s.', + 'settings_app.music_directories_label': 'Muziekmappen', + 'settings_app.music_directories_hint': 'Waar de albums van deze groep staan. Niets daarbuiten verschijnt op het tabblad Muziek.', + 'settings_app.photo_directories_label': 'Fotomappen', + 'settings_app.photo_directories_hint': 'Waar de albums van deze groep staan. Niets daarbuiten verschijnt op het tabblad Foto\'s.', + 'settings_app.chat_directory_label': 'Map voor bijlagen', + 'settings_app.chat_directory_hint': 'Waar in de chat verstuurde bestanden worden geschreven. Moet een lees-schrijfmap zijn.', + 'settings_app.chat_no_writable_root': 'Deze groep heeft geen beschrijfbare map, dus bijlagen staan uit.', + 'settings_app.chat_link_preview_label': 'Linkvoorbeelden', + 'settings_app.chat_link_preview_hint': 'Als een lid een link plaatst, haalt de node de titel en afbeelding van de pagina op. Dat is een verzoek vanaf uw machine naar een site die iemand anders koos.', + 'settings_app.tmdb_token_prompt': 'Meld u aan bij TMDB om uw eigen API-sleutel te maken.', + 'settings_app.tmdb_token_link': 'Sleutel ophalen', 'settings_node.roots_offline_hint': 'Niet verbonden met de node — wijzigingen gaan via de lokale node en worden bij de volgende herlaadbeurt actief.', 'settings_node.directories_title': 'App-mappen', 'settings_node.directories_hint': 'Gedeelde mappen, en welke daarvan de Video\'s-, Muziek- en Foto\'s-apps als eigen startpunt(en) gebruiken.', 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 d3826f5..c252e82 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js @@ -856,6 +856,33 @@ export default { 'settings_node.photo_roots_save': 'Zapisz', 'settings_node.shared_directories_title': 'Katalogi udostępnione', 'settings_node.shared_directories_hint': 'Foldery udostępnione tej grupie. Przełącz odczyt-zapis, aby zezwolić na przesyłanie, oznacz jako wymienny dla dysków zewnętrznych.', + 'folder_tree.title_single': 'Wybierz folder', + 'folder_tree.title_multi': 'Wybierz foldery', + 'folder_tree.choose': 'Wybierz…', + 'folder_tree.confirm': 'Użyj', + 'folder_tree.expand': 'Rozwiń', + 'folder_tree.collapse': 'Zwiń', + 'folder_tree.nothing_selected': 'Nic nie wybrano', + 'folder_tree.empty': 'Ta grupa nie ma jeszcze katalogów współdzielonych.', + 'folder_tree.writable_only': 'Tutaj można wybrać tylko katalogi do odczytu i zapisu — zapisywane są w nim pliki.', + 'folder_tree.no_writable_root': 'Ta grupa nie ma katalogu do zapisu. Najpierw włącz odczyt i zapis w Katalogach współdzielonych.', + 'folder_tree.read_only_blocked': 'Tylko do odczytu — nie można zapisywać', + 'settings_app.save': 'Zapisz', + 'settings_app.saving': 'Zapisywanie…', + 'settings_app.disabled_hint': 'Włącz tę aplikację, aby ją skonfigurować.', + 'settings_app.video_directories_label': 'Foldery wideo', + 'settings_app.video_directories_hint': 'Gdzie znajdują się filmy i seriale tej grupy. Nic poza nimi nie pojawi się w zakładce Wideo.', + 'settings_app.music_directories_label': 'Foldery muzyki', + 'settings_app.music_directories_hint': 'Gdzie znajdują się albumy tej grupy. Nic poza nimi nie pojawi się w zakładce Muzyka.', + 'settings_app.photo_directories_label': 'Foldery zdjęć', + 'settings_app.photo_directories_hint': 'Gdzie znajdują się albumy tej grupy. Nic poza nimi nie pojawi się w zakładce Zdjęcia.', + 'settings_app.chat_directory_label': 'Folder załączników', + 'settings_app.chat_directory_hint': 'Gdzie zapisywane są pliki wysłane na czacie. Musi to być katalog do odczytu i zapisu.', + 'settings_app.chat_no_writable_root': 'Ta grupa nie ma katalogu do zapisu, więc załączniki są wyłączone.', + 'settings_app.chat_link_preview_label': 'Podglądy linków', + 'settings_app.chat_link_preview_hint': 'Gdy członek wysyła link, węzeł pobiera tytuł i obraz strony. To żądanie z Twojego komputera do witryny wybranej przez kogoś innego.', + 'settings_app.tmdb_token_prompt': 'Zarejestruj się w TMDB, aby wygenerować własny klucz API.', + 'settings_app.tmdb_token_link': 'Pobierz klucz', 'settings_node.roots_offline_hint': 'Brak połączenia z węzłem — zmiany przechodzą przez węzeł lokalny i zaczną działać po jego następnym przeładowaniu.', 'settings_node.directories_title': 'Katalogi aplikacji', 'settings_node.directories_hint': 'Katalogi udostępnione oraz to, który z nich aplikacje Wideo, Muzyka i Zdjęcia traktują jako własny punkt (punkty) wejścia.', 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 6706c13..7fb6c8c 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 @@ -815,6 +815,33 @@ export default { 'settings_node.photo_roots_save': 'Salvar', 'settings_node.shared_directories_title': 'Diretórios compartilhados', 'settings_node.shared_directories_hint': 'Pastas compartilhadas com este grupo. Alterne leitura-escrita para permitir uploads, marque como removível para unidades externas.', + 'folder_tree.title_single': 'Escolher uma pasta', + 'folder_tree.title_multi': 'Escolher pastas', + 'folder_tree.choose': 'Escolher…', + 'folder_tree.confirm': 'Usar', + 'folder_tree.expand': 'Expandir', + 'folder_tree.collapse': 'Recolher', + 'folder_tree.nothing_selected': 'Nada selecionado', + 'folder_tree.empty': 'Este grupo ainda não tem diretórios compartilhados.', + 'folder_tree.writable_only': 'Aqui só é possível escolher diretórios de leitura e escrita — arquivos são gravados nele.', + 'folder_tree.no_writable_root': 'Este grupo não tem diretório gravável. Ative leitura e escrita em Diretórios compartilhados primeiro.', + 'folder_tree.read_only_blocked': 'Somente leitura — não é possível gravar', + 'settings_app.save': 'Salvar', + 'settings_app.saving': 'Salvando…', + 'settings_app.disabled_hint': 'Ative este aplicativo para configurá-lo.', + 'settings_app.video_directories_label': 'Pastas de vídeo', + 'settings_app.video_directories_hint': 'Onde ficam os filmes e séries deste grupo. Nada fora delas aparece na aba Vídeos.', + 'settings_app.music_directories_label': 'Pastas de música', + 'settings_app.music_directories_hint': 'Onde ficam os álbuns deste grupo. Nada fora delas aparece na aba Música.', + 'settings_app.photo_directories_label': 'Pastas de fotos', + 'settings_app.photo_directories_hint': 'Onde ficam os álbuns deste grupo. Nada fora delas aparece na aba Fotos.', + 'settings_app.chat_directory_label': 'Pasta de anexos', + 'settings_app.chat_directory_hint': 'Onde os arquivos enviados no chat são gravados. Precisa ser um diretório de leitura e escrita.', + 'settings_app.chat_no_writable_root': 'Este grupo não tem diretório gravável, então os anexos estão desativados.', + 'settings_app.chat_link_preview_label': 'Prévias de links', + 'settings_app.chat_link_preview_hint': 'Quando alguém publica um link, o nó busca o título e a imagem da página. É uma requisição da sua máquina para um site escolhido por outra pessoa.', + 'settings_app.tmdb_token_prompt': 'Cadastre-se no TMDB para gerar sua própria chave de API.', + 'settings_app.tmdb_token_link': 'Obter uma chave', 'settings_node.roots_offline_hint': 'Sem conexão com o nó — as alterações passam pelo nó local e entram em vigor no próximo recarregamento.', 'settings_node.directories_title': 'Diretórios de apps', 'settings_node.directories_hint': 'Pastas compartilhadas, e qual delas os apps Vídeos, Música e Fotos tratam como seu(s) próprio(s) ponto(s) de entrada.', 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 f62d6fd..e0886a2 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 @@ -799,6 +799,33 @@ export default { 'settings_node.photo_roots_save': '保存', 'settings_node.shared_directories_title': '共享目录', 'settings_node.shared_directories_hint': '与此群组共享的文件夹。切换读写以允许上传,标记为可移除用于外置驱动器。', + 'folder_tree.title_single': '选择文件夹', + 'folder_tree.title_multi': '选择文件夹', + 'folder_tree.choose': '选择…', + 'folder_tree.confirm': '使用', + 'folder_tree.expand': '展开', + 'folder_tree.collapse': '折叠', + 'folder_tree.nothing_selected': '未选择', + 'folder_tree.empty': '该群组还没有共享目录。', + 'folder_tree.writable_only': '此处只能选择可读写的目录 — 文件会写入其中。', + 'folder_tree.no_writable_root': '该群组没有可写目录。请先在「共享目录」中将某个目录设为读写。', + 'folder_tree.read_only_blocked': '只读 — 无法写入', + 'settings_app.save': '保存', + 'settings_app.saving': '正在保存…', + 'settings_app.disabled_hint': '启用该应用后即可配置。', + 'settings_app.video_directories_label': '视频文件夹', + 'settings_app.video_directories_hint': '该群组的影片和剧集所在位置。其外的内容不会出现在「视频」标签页。', + 'settings_app.music_directories_label': '音乐文件夹', + 'settings_app.music_directories_hint': '该群组的专辑所在位置。其外的内容不会出现在「音乐」标签页。', + 'settings_app.photo_directories_label': '照片文件夹', + 'settings_app.photo_directories_hint': '该群组的相册所在位置。其外的内容不会出现在「照片」标签页。', + 'settings_app.chat_directory_label': '附件文件夹', + 'settings_app.chat_directory_hint': '聊天中发送的文件写入位置。必须是可读写的目录。', + 'settings_app.chat_no_writable_root': '该群组没有可写目录,因此附件已停用。', + 'settings_app.chat_link_preview_label': '链接预览', + 'settings_app.chat_link_preview_hint': '当成员发布链接时,节点会抓取该页面的标题和图片。这是从你的机器发往他人所选站点的请求。', + 'settings_app.tmdb_token_prompt': '在 TMDB 注册以生成你自己的 API 密钥。', + 'settings_app.tmdb_token_link': '获取密钥', 'settings_node.roots_offline_hint': '未连接到节点 — 变更将通过本地节点进行,并在其下次重新加载时生效。', 'settings_node.directories_title': '应用目录', 'settings_node.directories_hint': '共享文件夹,以及“视频”“音乐”和“照片”应用各自使用哪个(些)作为入口。', |