diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-07 10:35:09 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-07 10:35:09 +0200 |
| commit | 2c0903c648e24b4e2adf20492398e8b67d033b49 (patch) | |
| tree | 0435f298010f0f946362f28baebbe88337ca8768 /packages/meshbay-hub/src/meshbay_hub/static/locales | |
| parent | 0ed078c92cabab1dab0f70f321562032ea549ce6 (diff) | |
| parent | eeda274d751c537f4ecef3087994a16a9517478f (diff) | |
| download | meshbay-2c0903c648e24b4e2adf20492398e8b67d033b49.tar.gz | |
Merge branch 'refactor/groups-phase1'
Groups refactor, phases 1-3.
The root model replaces the old `upload` flag and group-wide `member_upload`
with per-root `writable`/`removable`/`ejected`, carried by a `RootSet` that
both front doors — the loopback API and signed MNP — reach through the same
`ops` functions. MNP goes to 1.1, additively: the roots table now rides on
`index_delta`, so a root added, removed, ejected or plugged reaches every
connected client instead of only whoever reloaded.
The group UI becomes a plugin architecture: an application is a registry
entry in `apps.js` plus its own files, with directories stored generically
by `ops.set_app_directories` under whatever the app is called. A reference
application, hidden behind `?dev=1`, is what makes that claim testable —
adding it is what found the two places still naming apps by hand.
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, 582 insertions, 32 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 46168cf..d05d3a3 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js @@ -126,6 +126,12 @@ export default { 'group.tab_video': 'Videos', 'group.tab_music': 'Musik', 'group.tab_photos': 'Fotos', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': 'Hallo, Welt!', + 'helloworld.no_directory': 'Noch kein Ordner gewählt. Wählen Sie einen in den Einstellungen.', + 'helloworld.counted': '{n} Datei(en)', + 'settings_app.helloworld_directory_label': 'Ordner', + 'settings_app.helloworld_directory_hint': 'Der Ordner, den diese Referenz-App auflistet. Sie zeigt, dass eine neue Anwendung nichts außer ihren beiden Dateien braucht.', 'group.tab_members': 'Mitglieder', 'group.tab_settings': "Einstellungen", 'members.danger_leave_hint': "Sie verlieren den Zugriff auf die Dateien und den Chat dieser Gruppe.", @@ -154,7 +160,8 @@ export default { + 'diese Gruppe hostet.', 'group.upload': 'Hochladen', 'group.mkdir': 'Neuer Ordner', - 'group.mkdir_prompt': 'Name des neuen Ordners:', + 'group.mkdir_prompt': 'Name des neuen Ordners', + 'group.mkdir_offline': 'Nicht mit dem Node verbunden.', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -169,6 +176,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(nicht verfügbar — Laufwerk getrennt)', + 'group.root_plug': 'Einstecken', + 'group.root_eject': 'Auswerfen', + 'group.root_writable': 'Lesen/Schreiben', + 'group.root_ejected': '(ausgeworfen)', 'group.view': 'Ansehen', 'group.delete': 'Löschen', 'group.delete_confirm': '{name} löschen?', @@ -195,6 +206,7 @@ export default { 'chat.placeholder': 'Nachricht schreiben …', 'chat.send': 'Senden', 'chat.attach': 'Datei anhängen', + 'chat.attach_read_only': 'Kein beschreibbares freigegebenes Verzeichnis — Anhänge sind aus', // Video player 'video.loading': '{name} wird geladen …', @@ -722,10 +734,16 @@ export default { 'node.roots': 'Verzeichnisse', 'node.add_root': 'Verzeichnis hinzufügen', 'node.remove_root': 'Entfernen', + 'node.root_no_signing_key': 'Kein Signaturschlüssel verfügbar — koppeln Sie dieses Gerät zuerst mit dem Node', + 'node.root_no_route': 'Keine Verbindung zum Node — verbinden Sie sich damit oder verwenden Sie die App auf dem Rechner, der ihn hostet', + 'node.root_remove_last': 'Eine Gruppe braucht mindestens ein Verzeichnis', + 'node.root_path_hint': 'Der Pfad, wie der Node ihn sieht, auf dem Rechner, der diese Gruppe hostet.', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'Pfad', + 'node.directory': 'Verzeichnis', 'node.root_added': 'Verzeichnis hinzugefügt.', 'node.root_remove_confirm': '„{name}" aus dieser Gruppe entfernen?', 'node.root_removed': 'Verzeichnis entfernt. Neustart empfohlen, um den Index zu aktualisieren.', - 'node.upload_root': 'Uploads', 'node.attach_group': 'Gruppe hinzufügen', 'node.attach_pick': 'Zu hostende Gruppe', 'node.attach_dir': 'Freigegebenes Verzeichnis', @@ -805,7 +823,41 @@ export default { 'settings_node.photo_roots_add': 'Hinzufügen', 'settings_node.photo_roots_remove': 'Entfernen', 'settings_node.photo_roots_save': 'Speichern', - 'settings_node.directories_title': 'Verzeichnisse', + '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.remove': 'Entfernen', + 'folder_tree.add': 'Ordner hinzufügen…', + '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.roots_node_too_old': 'Dieser Node ist älter als diese Seite: Er kann seine Verzeichnisse anzeigen, aber hier nicht ändern. Aktualisieren Sie ihn oder nutzen Sie die meshbay-node root-Befehle.', + 'settings_node.app_node_too_old': 'Dieser Node ist älter als diese Seite und hat für diese App noch keine Einstellung. Aktualisieren Sie ihn, um sie hier zu konfigurieren.', + '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.', // Create-group wizard @@ -909,4 +961,7 @@ export default { 'node.tab_peers': 'Peers', 'node.tab_audit': 'Audit', 'node.tab_settings': 'Settings', + 'node.root_rw': 'Lesen/Schreiben', + 'node.root_ro': 'Nur lesen', + 'node.removable': 'wechselbar', }; 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 2d38e4b..6dbb70f 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js @@ -127,6 +127,12 @@ export default { 'group.tab_video': 'Videos', 'group.tab_music': 'Music', 'group.tab_photos': 'Photos', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': 'Hello, World!', + 'helloworld.no_directory': 'No folder chosen yet. Pick one in Settings.', + 'helloworld.counted': '{n} file(s)', + 'settings_app.helloworld_directory_label': 'Folder', + 'settings_app.helloworld_directory_hint': 'The folder this reference app lists. It exists to show that adding an application needs nothing beyond its own two files.', 'group.tab_members': 'Members', 'group.tab_settings': "Settings", 'members.danger_leave_hint': "You will lose access to this group's files and chat.", @@ -154,7 +160,8 @@ export default { 'group.offline_hint': 'Files will appear when a node hosting this group connects.', 'group.upload': 'Upload', 'group.mkdir': 'New folder', - 'group.mkdir_prompt': 'Name of the new folder:', + 'group.mkdir_prompt': 'New folder name', + 'group.mkdir_offline': 'Not connected to the node.', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -169,6 +176,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(unavailable — the drive is disconnected)', + 'group.root_ejected': '(ejected)', + 'group.root_writable': 'Read/Write', + 'group.root_eject': 'Eject', + 'group.root_plug': 'Plug in', 'group.view': 'View', 'group.delete': 'Delete', 'group.delete_confirm': 'Delete {name}?', @@ -194,6 +205,7 @@ export default { 'chat.placeholder': 'Type a message...', 'chat.send': 'Send', 'chat.attach': 'Attach file', + 'chat.attach_read_only': 'No writable shared directory — attachments are off', // Video player 'video.loading': 'Loading {name}...', @@ -599,8 +611,42 @@ export default { 'settings_node.photo_roots_add': 'Add', 'settings_node.photo_roots_remove': 'Remove', 'settings_node.photo_roots_save': 'Save', - 'settings_node.directories_title': 'Directories', - 'settings_node.directories_hint': 'Shared folders, and which of them the Videos, Music and Photos apps use as their own entry point(s).', + '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.remove': 'Remove', + 'folder_tree.add': 'Add a folder…', + '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.roots_node_too_old': 'This node is older than this page: it can show its directories but not change them here. Update it, or use the meshbay-node root commands.', + 'settings_node.app_node_too_old': 'This node is older than this page and has no setting for this app yet. Update it to configure this here.', + '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).', // Members 'members.col_role': 'Role', @@ -753,10 +799,19 @@ export default { 'node.peers': { one: '1 peer', other: '{n} peers' }, 'node.no_gek': 'No group key', 'node.roots': 'Directories', - 'node.upload_root': 'uploads', + 'node.directory': 'Directory', + 'node.root_rw': 'Writable', + 'node.root_ro': 'read-only', + 'node.removable': 'Removable', 'node.unavailable': 'unavailable', 'node.add_root': 'Add directory', 'node.remove_root': 'Remove', + 'node.root_no_signing_key': 'No signing key available — pair this device with the node first', + 'node.root_no_route': 'No route to the node — connect to it, or use the app on the machine hosting it', + 'node.root_remove_last': 'A group needs at least one directory', + 'node.root_path_hint': 'The path as the node sees it, on the machine hosting this group.', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'Path', 'node.root_added': 'Directory added.', 'node.root_removed': 'Directory removed. Restart recommended to update the index.', 'node.root_remove_confirm': 'Remove "{name}" from this group?', 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 471ad82..aa950cc 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js @@ -124,6 +124,12 @@ export default { 'group.tab_video': 'Vídeos', 'group.tab_music': 'Música', 'group.tab_photos': 'Fotos', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': '¡Hola, mundo!', + 'helloworld.no_directory': 'Aún no hay carpeta elegida. Elige una en los ajustes.', + 'helloworld.counted': '{n} archivo(s)', + 'settings_app.helloworld_directory_label': 'Carpeta', + 'settings_app.helloworld_directory_hint': 'La carpeta que lista esta aplicación de referencia. Existe para mostrar que añadir una aplicación no requiere más que sus dos archivos.', 'group.tab_members': 'Miembros', 'group.tab_settings': "Ajustes", 'members.danger_leave_hint': "Perderá el acceso a los archivos y al chat de este grupo.", @@ -152,7 +158,8 @@ export default { + 'este grupo.', 'group.upload': 'Subir', 'group.mkdir': 'Nueva carpeta', - 'group.mkdir_prompt': 'Nombre de la nueva carpeta:', + 'group.mkdir_prompt': 'Nombre de la nueva carpeta', + 'group.mkdir_offline': 'Sin conexión con el nodo.', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -167,6 +174,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(no disponible — la unidad está desconectada)', + 'group.root_plug': 'Conectar', + 'group.root_eject': 'Expulsar', + 'group.root_writable': 'Lectura/Escritura', + 'group.root_ejected': '(expulsado)', 'group.view': 'Ver', 'group.delete': 'Eliminar', 'group.delete_confirm': '¿Eliminar {name}?', @@ -193,6 +204,7 @@ export default { 'chat.placeholder': 'Escriba un mensaje...', 'chat.send': 'Enviar', 'chat.attach': 'Adjuntar archivo', + 'chat.attach_read_only': 'Ningún directorio compartido con escritura: los adjuntos están desactivados', // Video player 'video.loading': 'Cargando {name}...', @@ -718,10 +730,16 @@ export default { 'node.roots': 'Directorios', 'node.add_root': 'Añadir directorio', 'node.remove_root': 'Eliminar', + 'node.root_no_signing_key': 'No hay clave de firma disponible: empareja primero este dispositivo con el nodo', + 'node.root_no_route': 'No hay ruta al nodo: conéctate a él o usa la aplicación en la máquina que lo aloja', + 'node.root_remove_last': 'Un grupo necesita al menos un directorio', + 'node.root_path_hint': 'La ruta tal como la ve el nodo, en la máquina que aloja este grupo.', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'Ruta', + 'node.directory': 'Directorio', 'node.root_added': 'Directorio añadido.', 'node.root_remove_confirm': '¿Eliminar «{name}» de este grupo?', 'node.root_removed': 'Directorio eliminado. Se recomienda reiniciar para actualizar el índice.', - 'node.upload_root': 'subidas', 'node.attach_group': 'Añadir grupo', 'node.attach_pick': 'Grupo a alojar', 'node.attach_dir': 'Directorio compartido', @@ -801,7 +819,41 @@ export default { 'settings_node.photo_roots_add': 'Añadir', 'settings_node.photo_roots_remove': 'Quitar', 'settings_node.photo_roots_save': 'Guardar', - 'settings_node.directories_title': 'Directorios', + '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.remove': 'Quitar', + 'folder_tree.add': 'Añadir una carpeta…', + '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.roots_node_too_old': 'Este nodo es más antiguo que esta página: puede mostrar sus directorios pero no cambiarlos aquí. Actualízalo o usa los comandos meshbay-node root.', + 'settings_node.app_node_too_old': 'Este nodo es más antiguo que esta página y aún no tiene ajustes para esta aplicación. Actualízalo para configurarla aquí.', + '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.', // Create group wizard @@ -905,4 +957,7 @@ export default { 'node.tab_peers': 'Peers', 'node.tab_audit': 'Audit', 'node.tab_settings': 'Settings', + 'node.root_rw': 'lectura-escritura', + 'node.root_ro': 'solo lectura', + 'node.removable': 'extraíble', }; 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 48f26a2..daa9f94 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js @@ -125,6 +125,12 @@ export default { 'group.tab_video': 'Vidéos', 'group.tab_music': 'Musique', 'group.tab_photos': 'Photos', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': 'Bonjour, monde !', + 'helloworld.no_directory': 'Aucun dossier choisi. Choisissez-en un dans les réglages.', + 'helloworld.counted': '{n} fichier(s)', + 'settings_app.helloworld_directory_label': 'Dossier', + 'settings_app.helloworld_directory_hint': 'Le dossier que cette application de référence liste. Elle existe pour montrer qu\'ajouter une application ne demande rien de plus que ses deux fichiers.', 'group.tab_members': 'Membres', 'group.tab_settings': "Paramètres", 'members.danger_leave_hint': "Vous perdrez l’accès aux fichiers et à la discussion de ce groupe.", @@ -153,7 +159,8 @@ export default { + 'groupe se connectera.', 'group.upload': 'Envoyer', 'group.mkdir': 'Nouveau dossier', - 'group.mkdir_prompt': 'Nom du nouveau dossier :', + 'group.mkdir_prompt': 'Nom du nouveau dossier', + 'group.mkdir_offline': 'Non connecté au nœud.', 'device.add_title': 'Ce navigateur n’est pas encore lié à ce nœud', 'device.add_hint': 'Votre compte est connu ici, mais ce navigateur détient une autre clé. Approuvez-le depuis un appareil déjà lié — sans passer par l’opérateur.', 'device.add_btn': 'Obtenir un code de liaison', @@ -168,6 +175,10 @@ export default { 'device.approve_btn': 'Approuver', 'device.approved': 'Appareil lié.', 'group.root_unavailable': '(indisponible — le disque est déconnecté)', + 'group.root_ejected': '(éjecté)', + 'group.root_writable': 'Lecture/Écriture', + 'group.root_eject': 'Éjecter', + 'group.root_plug': 'Reconnecter', 'group.view': 'Afficher', 'group.delete': 'Supprimer', 'group.delete_confirm': 'Supprimer {name} ?', @@ -194,6 +205,7 @@ export default { 'chat.placeholder': 'Écrivez un message...', 'chat.send': 'Envoyer', 'chat.attach': 'Joindre un fichier', + 'chat.attach_read_only': 'Aucun répertoire partagé en écriture — pièces jointes désactivées', // Video player 'video.loading': 'Chargement de {name}...', @@ -727,10 +739,19 @@ export default { 'node.roots': 'Répertoires', 'node.add_root': 'Ajouter un répertoire', 'node.remove_root': 'Retirer', + 'node.root_no_signing_key': 'Aucune clé de signature disponible — appairez d\'abord cet appareil avec le nœud', + 'node.root_no_route': 'Aucune route vers le nœud — connectez-vous à lui, ou utilisez l\'application sur la machine qui l\'héberge', + 'node.root_remove_last': 'Un groupe a besoin d\'au moins un répertoire', + 'node.root_path_hint': 'Le chemin tel que le nœud le voit, sur la machine qui héberge ce groupe.', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'Chemin', 'node.root_added': 'Répertoire ajouté.', 'node.root_remove_confirm': 'Retirer « {name} » de ce groupe ?', 'node.root_removed': 'Répertoire retiré. Un redémarrage est recommandé pour mettre à jour l\'index.', - 'node.upload_root': 'uploads', + 'node.directory': 'Répertoire', + 'node.root_rw': 'Écriture', + 'node.root_ro': 'lecture seule', + 'node.removable': 'Amovible', 'node.attach_group': 'Ajouter un groupe', 'node.attach_pick': 'Groupe à héberger', 'node.attach_dir': 'Répertoire partagé', @@ -816,8 +837,42 @@ export default { 'settings_node.photo_roots_add': 'Ajouter', 'settings_node.photo_roots_remove': 'Retirer', 'settings_node.photo_roots_save': 'Enregistrer', - 'settings_node.directories_title': 'Répertoires', - 'settings_node.directories_hint': 'Dossiers partagés, et lequel d\'entre eux les applications Vidéos, Musique et Photos utilisent comme leur(s) propre(s) point(s) d\'entrée.', + '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.remove': 'Retirer', + 'folder_tree.add': 'Ajouter un dossier…', + '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.roots_node_too_old': 'Ce nœud est plus ancien que cette page : il peut afficher ses répertoires mais pas les modifier ici. Mettez-le à jour, ou utilisez les commandes meshbay-node root.', + 'settings_node.app_node_too_old': 'Ce nœud est plus ancien que cette page et n\'a pas encore de réglage pour cette application. Mettez-le à jour pour la configurer ici.', + '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.', // Create group wizard 'wizard.title': 'Créer un groupe', 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 564f34b..364c26c 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js @@ -125,6 +125,12 @@ export default { 'group.tab_video': 'Video', 'group.tab_music': 'Musica', 'group.tab_photos': 'Foto', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': 'Ciao, mondo!', + 'helloworld.no_directory': 'Nessuna cartella scelta. Scegline una nelle impostazioni.', + 'helloworld.counted': '{n} file', + 'settings_app.helloworld_directory_label': 'Cartella', + 'settings_app.helloworld_directory_hint': 'La cartella elencata da questa applicazione di riferimento. Serve a mostrare che aggiungerne una non richiede altro che i suoi due file.', 'group.tab_members': 'Membri', 'group.tab_settings': "Impostazioni", 'members.danger_leave_hint': "Perderai l’accesso ai file e alla chat di questo gruppo.", @@ -153,7 +159,8 @@ export default { + 'questo gruppo.', 'group.upload': 'Carica', 'group.mkdir': 'Nuova cartella', - 'group.mkdir_prompt': 'Nome della nuova cartella:', + 'group.mkdir_prompt': 'Nome della nuova cartella', + 'group.mkdir_offline': 'Non connesso al nodo.', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -168,6 +175,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(non disponibile — l’unità è scollegata)', + 'group.root_plug': 'Ricollega', + 'group.root_eject': 'Espelli', + 'group.root_writable': 'Lettura/Scrittura', + 'group.root_ejected': '(espulso)', 'group.view': 'Visualizza', 'group.delete': 'Elimina', 'group.delete_confirm': 'Eliminare {name}?', @@ -194,6 +205,7 @@ export default { 'chat.placeholder': 'Scriva un messaggio...', 'chat.send': 'Invia', 'chat.attach': 'Allega un file', + 'chat.attach_read_only': 'Nessuna directory condivisa scrivibile: gli allegati sono disattivati', // Video player 'video.loading': 'Caricamento di {name}...', @@ -726,10 +738,16 @@ export default { 'node.roots': 'Directory', 'node.add_root': 'Aggiungi directory', 'node.remove_root': 'Rimuovi', + 'node.root_no_signing_key': 'Nessuna chiave di firma disponibile: associa prima questo dispositivo al nodo', + 'node.root_no_route': 'Nessuna via verso il nodo: connettiti a esso oppure usa l\'applicazione sulla macchina che lo ospita', + 'node.root_remove_last': 'Un gruppo ha bisogno di almeno una directory', + 'node.root_path_hint': 'Il percorso come lo vede il nodo, sulla macchina che ospita questo gruppo.', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'Percorso', + 'node.directory': 'Directory', 'node.root_added': 'Directory aggiunta.', 'node.root_remove_confirm': 'Rimuovere «{name}» da questo gruppo?', 'node.root_removed': "Directory rimossa. Si consiglia un riavvio per aggiornare l'indice.", - 'node.upload_root': 'caricamenti', 'node.attach_group': 'Aggiungi gruppo', 'node.attach_pick': 'Gruppo da ospitare', 'node.attach_dir': 'Directory condivisa', @@ -815,7 +833,41 @@ export default { 'settings_node.photo_roots_add': 'Aggiungi', 'settings_node.photo_roots_remove': 'Rimuovi', 'settings_node.photo_roots_save': 'Salva', - 'settings_node.directories_title': 'Directory', + '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.remove': 'Rimuovi', + 'folder_tree.add': 'Aggiungi una cartella…', + '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.roots_node_too_old': 'Questo nodo è più vecchio di questa pagina: può mostrare le sue directory ma non modificarle qui. Aggiornalo, oppure usa i comandi meshbay-node root.', + 'settings_node.app_node_too_old': 'Questo nodo è più vecchio di questa pagina e non ha ancora impostazioni per questa applicazione. Aggiornalo per configurarla qui.', + '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.', // Create-group wizard @@ -919,4 +971,7 @@ export default { 'node.tab_peers': 'Peers', 'node.tab_audit': 'Audit', 'node.tab_settings': 'Settings', + 'node.root_rw': 'lettura-scrittura', + 'node.root_ro': 'sola lettura', + 'node.removable': 'rimovibile', }; 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 3eed305..f778fc4 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js @@ -123,6 +123,12 @@ export default { 'group.tab_video': '動画', 'group.tab_music': '音楽', 'group.tab_photos': '写真', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': 'ハロー、ワールド!', + 'helloworld.no_directory': 'フォルダーが未選択です。設定で選んでください。', + 'helloworld.counted': '{n} 件のファイル', + 'settings_app.helloworld_directory_label': 'フォルダー', + 'settings_app.helloworld_directory_hint': 'この参照アプリが一覧表示するフォルダーです。アプリの追加に必要なのは自身の 2 つのファイルだけであることを示すために存在します。', 'group.tab_members': 'メンバー', 'group.tab_settings': "設定", 'members.danger_leave_hint': "このグループのファイルとチャットにアクセスできなくなります。", @@ -151,7 +157,8 @@ export default { + 'ファイルが表示されます。', 'group.upload': 'アップロード', 'group.mkdir': '新しいフォルダー', - 'group.mkdir_prompt': '新しいフォルダーの名前:', + 'group.mkdir_prompt': '新しいフォルダー名', + 'group.mkdir_offline': 'ノードに接続していません。', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -166,6 +173,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(利用不可 — ドライブが切断されています)', + 'group.root_plug': '接続する', + 'group.root_eject': '取り外す', + 'group.root_writable': '読み書き可', + 'group.root_ejected': '(取り外し済み)', 'group.view': '表示', 'group.delete': '削除', 'group.delete_confirm': '{name} を削除しますか?', @@ -191,6 +202,7 @@ export default { 'chat.placeholder': 'メッセージを入力…', 'chat.send': '送信', 'chat.attach': 'ファイルを添付', + 'chat.attach_read_only': '書き込み可能な共有ディレクトリがありません — 添付は無効です', // Video player 'video.loading': '{name} を読み込んでいます…', @@ -712,10 +724,16 @@ export default { 'node.roots': 'ディレクトリ', 'node.add_root': 'ディレクトリを追加', 'node.remove_root': '削除', + 'node.root_no_signing_key': '署名鍵がありません — 先にこの端末をノードとペアリングしてください', + 'node.root_no_route': 'ノードへの経路がありません — 接続するか、ノードを動かしているマシンでアプリを使ってください', + 'node.root_remove_last': 'グループには少なくとも 1 つのディレクトリが必要です', + 'node.root_path_hint': 'このグループをホストしているマシン上で、ノードから見たパスです。', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'パス', + 'node.directory': 'ディレクトリ', 'node.root_added': 'ディレクトリを追加しました。', 'node.root_remove_confirm': '「{name}」をこのグループから削除しますか?', 'node.root_removed': 'ディレクトリを削除しました。インデックスを更新するために再起動を推奨します。', - 'node.upload_root': 'アップロード', 'node.attach_group': 'グループを追加', 'node.attach_pick': 'ホストするグループ', 'node.attach_dir': '共有ディレクトリ', @@ -799,7 +817,41 @@ export default { 'settings_node.photo_roots_add': '追加', 'settings_node.photo_roots_remove': '削除', 'settings_node.photo_roots_save': '保存', - 'settings_node.directories_title': 'ディレクトリ', + 'settings_node.shared_directories_title': '共有ディレクトリ', + 'settings_node.shared_directories_hint': 'このグループと共有されているフォルダー。読み書きを切り替えてアップロードを許可し、外付けドライブにはリムーバブルを設定します。', + 'folder_tree.title_single': 'フォルダーを選択', + 'folder_tree.title_multi': 'フォルダーを選択', + 'folder_tree.choose': '選択…', + 'folder_tree.remove': '外す', + 'folder_tree.add': 'フォルダーを追加…', + '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.roots_node_too_old': 'このノードはこのページより古く、ディレクトリの表示はできますがここでの変更はできません。更新するか、meshbay-node root コマンドを使ってください。', + 'settings_node.app_node_too_old': 'このノードはこのページより古く、このアプリの設定をまだ持っていません。ここで設定するには更新してください。', + 'settings_node.directories_title': 'アプリのディレクトリ', 'settings_node.directories_hint': '共有フォルダと、動画・音楽・写真の各アプリがそれぞれの起点として使用するフォルダです。', // Wizard @@ -903,4 +955,7 @@ export default { 'node.tab_peers': 'Peers', 'node.tab_audit': 'Audit', 'node.tab_settings': 'Settings', + 'node.root_rw': '読み書き', + 'node.root_ro': '読み取り専用', + 'node.removable': 'リムーバブル', }; 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 711a22f..6e6842e 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js @@ -126,6 +126,12 @@ export default { 'group.tab_video': "Video's", 'group.tab_music': 'Muziek', 'group.tab_photos': "Foto's", + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': 'Hallo, wereld!', + 'helloworld.no_directory': 'Nog geen map gekozen. Kies er een bij Instellingen.', + 'helloworld.counted': '{n} bestand(en)', + 'settings_app.helloworld_directory_label': 'Map', + 'settings_app.helloworld_directory_hint': 'De map die deze referentie-app toont. Hij bestaat om te laten zien dat een app toevoegen niets meer vergt dan zijn eigen twee bestanden.', 'group.tab_members': 'Leden', 'group.tab_settings': "Instellingen", 'members.danger_leave_hint': "U verliest de toegang tot de bestanden en de chat van deze groep.", @@ -154,7 +160,8 @@ export default { + 'die deze groep host.', 'group.upload': 'Uploaden', 'group.mkdir': 'Nieuwe map', - 'group.mkdir_prompt': 'Naam van de nieuwe map:', + 'group.mkdir_prompt': 'Naam van de nieuwe map', + 'group.mkdir_offline': 'Niet verbonden met de node.', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -169,6 +176,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(niet beschikbaar — de schijf is losgekoppeld)', + 'group.root_plug': 'Aansluiten', + 'group.root_eject': 'Uitwerpen', + 'group.root_writable': 'Lezen/schrijven', + 'group.root_ejected': '(uitgeworpen)', 'group.view': 'Bekijken', 'group.delete': 'Verwijderen', 'group.delete_confirm': '{name} verwijderen?', @@ -195,6 +206,7 @@ export default { 'chat.placeholder': 'Typ een bericht...', 'chat.send': 'Versturen', 'chat.attach': 'Bestand bijvoegen', + 'chat.attach_read_only': 'Geen beschrijfbare gedeelde map — bijlagen staan uit', // Video player 'video.loading': '{name} wordt geladen...', @@ -728,10 +740,16 @@ export default { 'node.roots': 'Mappen', 'node.add_root': 'Map toevoegen', 'node.remove_root': 'Verwijderen', + 'node.root_no_signing_key': 'Geen ondertekeningssleutel beschikbaar — koppel dit apparaat eerst aan de node', + 'node.root_no_route': 'Geen route naar de node — maak verbinding, of gebruik de app op de machine die hem host', + 'node.root_remove_last': 'Een groep heeft minstens één map nodig', + 'node.root_path_hint': 'Het pad zoals de node het ziet, op de machine die deze groep host.', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'Pad', + 'node.directory': 'Map', 'node.root_added': 'Map toegevoegd.', 'node.root_remove_confirm': '„{name}" uit deze groep verwijderen?', 'node.root_removed': 'Map verwijderd. Herstart aanbevolen om de index bij te werken.', - 'node.upload_root': 'uploads', 'node.attach_group': 'Groep toevoegen', 'node.attach_pick': 'Groep om te hosten', 'node.attach_dir': 'Gedeelde map', @@ -817,7 +835,41 @@ export default { 'settings_node.photo_roots_add': 'Toevoegen', 'settings_node.photo_roots_remove': 'Verwijderen', 'settings_node.photo_roots_save': 'Opslaan', - 'settings_node.directories_title': 'Mappen', + '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.remove': 'Verwijderen', + 'folder_tree.add': 'Map toevoegen…', + '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.roots_node_too_old': 'Deze node is ouder dan deze pagina: hij kan zijn mappen tonen maar hier niet wijzigen. Werk hem bij, of gebruik de meshbay-node root-opdrachten.', + 'settings_node.app_node_too_old': 'Deze node is ouder dan deze pagina en heeft nog geen instelling voor deze app. Werk hem bij om die hier in te stellen.', + '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.', // Create group wizard @@ -921,4 +973,7 @@ export default { 'node.tab_peers': 'Peers', 'node.tab_audit': 'Audit', 'node.tab_settings': 'Settings', + 'node.root_rw': 'lezen-schrijven', + 'node.root_ro': 'alleen-lezen', + 'node.removable': 'verwijderbaar', }; 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 67615a2..c8cbd16 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js @@ -130,6 +130,12 @@ export default { 'group.tab_video': 'Wideo', 'group.tab_music': 'Muzyka', 'group.tab_photos': 'Zdjęcia', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': 'Witaj, świecie!', + 'helloworld.no_directory': 'Nie wybrano folderu. Wybierz go w ustawieniach.', + 'helloworld.counted': 'Plików: {n}', + 'settings_app.helloworld_directory_label': 'Folder', + 'settings_app.helloworld_directory_hint': 'Folder wypisywany przez tę aplikację referencyjną. Istnieje, aby pokazać, że dodanie aplikacji nie wymaga niczego poza jej dwoma plikami.', 'group.tab_members': 'Członkowie', 'group.tab_settings': "Ustawienia", 'members.danger_leave_hint': "Utracisz dostęp do plików i czatu tej grupy.", @@ -157,7 +163,8 @@ export default { 'group.offline_hint': 'Pliki pojawią się, gdy połączy się node hostujący tę grupę.', 'group.upload': 'Wyślij', 'group.mkdir': 'Nowy folder', - 'group.mkdir_prompt': 'Nazwa nowego folderu:', + 'group.mkdir_prompt': 'Nazwa nowego folderu', + 'group.mkdir_offline': 'Brak połączenia z węzłem.', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -172,6 +179,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(niedostępne — dysk jest odłączony)', + 'group.root_plug': 'Podłącz', + 'group.root_eject': 'Odłącz', + 'group.root_writable': 'Odczyt/zapis', + 'group.root_ejected': '(odłączony)', 'group.view': 'Podgląd', 'group.delete': 'Usuń', 'group.delete_confirm': 'Usunąć {name}?', @@ -200,6 +211,7 @@ export default { 'chat.placeholder': 'Napisz wiadomość...', 'chat.send': 'Wyślij', 'chat.attach': 'Załącz plik', + 'chat.attach_read_only': 'Brak zapisywalnego katalogu współdzielonego — załączniki wyłączone', // Video player 'video.loading': 'Wczytywanie {name}...', @@ -750,10 +762,16 @@ export default { 'node.roots': 'Katalogi', 'node.add_root': 'Dodaj katalog', 'node.remove_root': 'Usuń', + 'node.root_no_signing_key': 'Brak klucza podpisu — najpierw sparuj to urządzenie z węzłem', + 'node.root_no_route': 'Brak połączenia z węzłem — połącz się z nim albo użyj aplikacji na komputerze, który go hostuje', + 'node.root_remove_last': 'Grupa wymaga co najmniej jednego katalogu', + 'node.root_path_hint': 'Ścieżka widziana przez węzeł, na komputerze hostującym tę grupę.', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'Ścieżka', + 'node.directory': 'Katalog', 'node.root_added': 'Katalog dodany.', 'node.root_remove_confirm': 'Usunąć „{name}" z tej grupy?', 'node.root_removed': 'Katalog usunięty. Zalecany restart w celu odświeżenia indeksu.', - 'node.upload_root': 'przesyłanie', 'node.attach_group': 'Dodaj grupę', 'node.attach_pick': 'Grupa do hostowania', 'node.attach_dir': 'Katalog współdzielony', @@ -843,7 +861,41 @@ export default { 'settings_node.photo_roots_add': 'Dodaj', 'settings_node.photo_roots_remove': 'Usuń', 'settings_node.photo_roots_save': 'Zapisz', - 'settings_node.directories_title': 'Katalogi', + '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.remove': 'Usuń', + 'folder_tree.add': 'Dodaj folder…', + '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.roots_node_too_old': 'Ten węzeł jest starszy niż ta strona: może pokazać swoje katalogi, ale nie zmieni ich tutaj. Zaktualizuj go albo użyj poleceń meshbay-node root.', + 'settings_node.app_node_too_old': 'Ten węzeł jest starszy niż ta strona i nie ma jeszcze ustawień tej aplikacji. Zaktualizuj go, aby skonfigurować ją tutaj.', + '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.', // Create-group wizard @@ -947,4 +999,7 @@ export default { 'node.tab_peers': 'Peers', 'node.tab_audit': 'Audit', 'node.tab_settings': 'Settings', + 'node.root_rw': 'odczyt-zapis', + 'node.root_ro': 'tylko odczyt', + 'node.removable': 'wymienny', }; 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 2d07994..6eb2242 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 @@ -126,6 +126,12 @@ export default { 'group.tab_video': 'Vídeos', 'group.tab_music': 'Música', 'group.tab_photos': 'Fotos', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': 'Olá, mundo!', + 'helloworld.no_directory': 'Nenhuma pasta escolhida. Escolha uma nas configurações.', + 'helloworld.counted': '{n} arquivo(s)', + 'settings_app.helloworld_directory_label': 'Pasta', + 'settings_app.helloworld_directory_hint': 'A pasta que este aplicativo de referência lista. Existe para mostrar que adicionar um aplicativo não exige nada além de seus dois arquivos.', 'group.tab_members': 'Membros', 'group.tab_settings': "Configurações", 'members.danger_leave_hint': "Você perderá o acesso aos arquivos e ao chat deste grupo.", @@ -154,7 +160,8 @@ export default { + 'se conectar.', 'group.upload': 'Enviar', 'group.mkdir': 'Nova pasta', - 'group.mkdir_prompt': 'Nome da nova pasta:', + 'group.mkdir_prompt': 'Nome da nova pasta', + 'group.mkdir_offline': 'Sem conexão com o nó.', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -169,6 +176,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(indisponível — a unidade está desconectada)', + 'group.root_plug': 'Conectar', + 'group.root_eject': 'Ejetar', + 'group.root_writable': 'Leitura/Escrita', + 'group.root_ejected': '(ejetado)', 'group.view': 'Visualizar', 'group.delete': 'Excluir', 'group.delete_confirm': 'Excluir {name}?', @@ -195,6 +206,7 @@ export default { 'chat.placeholder': 'Escreva uma mensagem...', 'chat.send': 'Enviar', 'chat.attach': 'Anexar arquivo', + 'chat.attach_read_only': 'Nenhum diretório compartilhado gravável — anexos desativados', // Video player 'video.loading': 'Carregando {name}...', @@ -719,10 +731,16 @@ export default { 'node.roots': 'Diretórios', 'node.add_root': 'Adicionar diretório', 'node.remove_root': 'Remover', + 'node.root_no_signing_key': 'Nenhuma chave de assinatura disponível — pareie este dispositivo com o nó primeiro', + 'node.root_no_route': 'Sem rota até o nó — conecte-se a ele ou use o aplicativo na máquina que o hospeda', + 'node.root_remove_last': 'Um grupo precisa de pelo menos um diretório', + 'node.root_path_hint': 'O caminho como o nó o vê, na máquina que hospeda este grupo.', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': 'Caminho', + 'node.directory': 'Diretório', 'node.root_added': 'Diretório adicionado.', 'node.root_remove_confirm': 'Remover "{name}" deste grupo?', 'node.root_removed': 'Diretório removido. Reinicialização recomendada para atualizar o índice.', - 'node.upload_root': 'uploads', 'node.attach_group': 'Adicionar grupo', 'node.attach_pick': 'Grupo a hospedar', 'node.attach_dir': 'Diretório compartilhado', @@ -802,7 +820,41 @@ export default { 'settings_node.photo_roots_add': 'Adicionar', 'settings_node.photo_roots_remove': 'Remover', 'settings_node.photo_roots_save': 'Salvar', - 'settings_node.directories_title': 'Diretórios', + '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.remove': 'Remover', + 'folder_tree.add': 'Adicionar uma pasta…', + '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.roots_node_too_old': 'Este nó é mais antigo que esta página: ele pode mostrar seus diretórios, mas não alterá-los aqui. Atualize-o ou use os comandos meshbay-node root.', + 'settings_node.app_node_too_old': 'Este nó é mais antigo que esta página e ainda não tem configuração para este aplicativo. Atualize-o para configurá-lo aqui.', + '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.', // Create group wizard @@ -906,4 +958,7 @@ export default { 'node.tab_peers': 'Peers', 'node.tab_audit': 'Audit', 'node.tab_settings': 'Settings', + 'node.root_rw': 'leitura-escrita', + 'node.root_ro': 'somente leitura', + 'node.removable': 'removível', }; 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 fd0c7f9..044611e 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 @@ -123,6 +123,12 @@ export default { 'group.tab_video': '视频', 'group.tab_music': '音乐', 'group.tab_photos': '照片', + 'group.tab_helloworld': 'HelloWorld', + 'helloworld.greeting': '你好,世界!', + 'helloworld.no_directory': '尚未选择文件夹。请在设置中选择。', + 'helloworld.counted': '{n} 个文件', + 'settings_app.helloworld_directory_label': '文件夹', + 'settings_app.helloworld_directory_hint': '该参考应用所列出的文件夹。它的存在是为了说明:新增一个应用只需要它自己的两个文件。', 'group.tab_members': '成员', 'group.tab_settings': "设置", 'members.danger_leave_hint': "您将无法再访问该群组的文件和聊天。", @@ -150,7 +156,8 @@ export default { 'group.offline_hint': '当托管此群组的 node 连接后,文件就会出现。', 'group.upload': '上传', 'group.mkdir': '新建文件夹', - 'group.mkdir_prompt': '新文件夹的名称:', + 'group.mkdir_prompt': '新文件夹名称', + 'group.mkdir_offline': '未连接到节点。', 'device.add_title': 'This browser is not linked to this node yet', 'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.', 'device.add_btn': 'Get a linking code', @@ -165,6 +172,10 @@ export default { 'device.approve_btn': 'Approve', 'device.approved': 'Device linked.', 'group.root_unavailable': '(不可用 — 驱动器已断开连接)', + 'group.root_plug': '重新接入', + 'group.root_eject': '弹出', + 'group.root_writable': '读写', + 'group.root_ejected': '(已弹出)', 'group.view': '查看', 'group.delete': '删除', 'group.delete_confirm': '删除 {name}?', @@ -189,6 +200,7 @@ export default { 'chat.placeholder': '输入消息…', 'chat.send': '发送', 'chat.attach': '添加附件', + 'chat.attach_read_only': '没有可写的共享目录 — 附件已停用', // Video player 'video.loading': '正在加载 {name}…', @@ -699,10 +711,16 @@ export default { 'node.roots': '目录', 'node.add_root': '添加目录', 'node.remove_root': '移除', + 'node.root_no_signing_key': '没有可用的签名密钥 — 请先将本设备与节点配对', + 'node.root_no_route': '无法连接到节点 — 请先连接,或在运行该节点的机器上使用应用', + 'node.root_remove_last': '每个群组至少需要一个目录', + 'node.root_path_hint': '托管该群组的机器上,节点所看到的路径。', + 'node.root_path_placeholder': '/home/user/Media', + 'node.root_path': '路径', + 'node.directory': '目录', 'node.root_added': '目录已添加。', 'node.root_remove_confirm': '从此群组中移除"{name}"?', 'node.root_removed': '目录已移除。建议重启以更新索引。', - 'node.upload_root': '上传目录', 'node.attach_group': '添加群组', 'node.attach_pick': '要托管的群组', 'node.attach_dir': '共享目录', @@ -786,7 +804,41 @@ export default { 'settings_node.photo_roots_add': '添加', 'settings_node.photo_roots_remove': '移除', 'settings_node.photo_roots_save': '保存', - 'settings_node.directories_title': '目录', + 'settings_node.shared_directories_title': '共享目录', + 'settings_node.shared_directories_hint': '与此群组共享的文件夹。切换读写以允许上传,标记为可移除用于外置驱动器。', + 'folder_tree.title_single': '选择文件夹', + 'folder_tree.title_multi': '选择文件夹', + 'folder_tree.choose': '选择…', + 'folder_tree.remove': '移除', + 'folder_tree.add': '添加文件夹…', + '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.roots_node_too_old': '该节点比本页面旧:它能显示自己的目录,但无法在此更改。请更新节点,或使用 meshbay-node root 命令。', + 'settings_node.app_node_too_old': '该节点比本页面旧,尚不支持此应用的设置。请更新节点后在此配置。', + 'settings_node.directories_title': '应用目录', 'settings_node.directories_hint': '共享文件夹,以及“视频”“音乐”和“照片”应用各自使用哪个(些)作为入口。', // Create group wizard @@ -891,4 +943,7 @@ export default { 'node.tab_peers': 'Peers', 'node.tab_audit': 'Audit', 'node.tab_settings': 'Settings', + 'node.root_rw': '读写', + 'node.root_ro': '只读', + 'node.removable': '可移除', }; |