Skip to content

Commit

Permalink
Add implements API to apps
Browse files Browse the repository at this point in the history
Allow mixing and matching of dependencies where one dependency
implements the external interface of another. For example, Bitcoin Knots
implements Bitcoin Node's interface, so can be used as an alternative
dependency when installing any app depending on Bitcoin Node. Similarly,
when an app is already installed, its dependencies are now
hot-swappable.

Co-authored-by: Mayank Chhabra <[email protected]>
Co-authored-by: dcodeIO <[email protected]>
Co-authored-by: Luke Childs <[email protected]>
  • Loading branch information
4 people authored Nov 18, 2024
1 parent f3b3268 commit e3d1824
Show file tree
Hide file tree
Showing 37 changed files with 975 additions and 400 deletions.
11 changes: 8 additions & 3 deletions packages/ui/public/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"app-only-over-tor": "{{app}} kann nur über Tor verwendet werden. Bitte greife über einen Tor-Browser auf dein Umbrel zu deiner Remote-Zugriffs-URL (Einstellungen > Remote Tor-Zugang) zu, um diese App zu öffnen.",
"app-page.section.about": "Über",
"app-page.section.credentials.title": "Standardanmeldeinformationen",
"app-page.section.dependencies.n-alternatives": "{{count}} Alternativen ansehen",
"app-page.section.info.compatibility": "Kompatibilität",
"app-page.section.info.compatibility-compatible": "Kompatibel",
"app-page.section.info.compatibility-not-compatible": "Nicht kompatibel",
Expand All @@ -32,6 +33,9 @@
"app-page.section.requires": "Benötigt",
"app-picker.search": "Suchen...",
"app-picker.select-app": "App auswählen...",
"app-settings.connected-to": "{{appName}} ist mit diesen Apps verbunden",
"app-settings.save-changes": "Änderungen speichern",
"app-settings.title": "Einstellungen",
"app-store.browse-category-apps": "{{category}} Apps durchsuchen",
"app-store.category.ai": "KI",
"app-store.category.all": "Alle Apps",
Expand Down Expand Up @@ -59,6 +63,7 @@
"app-updates.updates-available-count_other": "{{count}} Aktualisierungen verfügbar",
"app-updates.updating": "Aktualisiert...",
"app.install": "Installieren",
"app.installed": "Installiert",
"app.installing": "Installiert",
"app.offline": "Nicht in Betrieb",
"app.open": "Öffnen",
Expand Down Expand Up @@ -140,6 +145,7 @@
"default-credentials.title": "Anmeldeinformationen für {{app}}",
"default-credentials.username": "Standardbenutzername",
"desktop.app.context.go-to-store-page": "Im App Store anzeigen",
"desktop.app.context.settings": "Einstellungen",
"desktop.app.context.show-default-credentials": "Standardanmeldeinformationen anzeigen",
"desktop.app.context.uninstall": "Deinstallieren",
"desktop.context-menu.change-wallpaper": "Hintergrundbild ändern",
Expand Down Expand Up @@ -185,9 +191,8 @@
"factory-reset.success.description": "Alle deine Apps, App-Daten und Kontodaten wurden von deinem Gerät gelöscht und das System wurde auf den Werkszustand zurückgesetzt.",
"factory-reset.success.title": "Zurücksetzen erfolgreich",
"hello": "Hallo",
"install-first.description_one": "Installiere diese App, um {{app}} zu installieren.",
"install-first.description_other": "Installiere zuerst diese Apps, um {{app}} zu installieren.",
"install-first.title": "{{app}} benötigt Zugriff auf",
"install-first.install-app": "Installiere {{app}}",
"install-first.title": "{{app}} benötigt diese Apps",
"install-your-first-app": "Installiere deine erste App",
"language": "Sprache",
"language-description": "Deine bevorzugte umbrelOS Sprache",
Expand Down
11 changes: 8 additions & 3 deletions packages/ui/public/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"app-only-over-tor": "{{app}} can only be used over Tor. Please access your Umbrel in a Tor browser on your remote access URL (Settings > Remote Tor access) to open this app.",
"app-page.section.about": "About",
"app-page.section.credentials.title": "Default credentials",
"app-page.section.dependencies.n-alternatives": "See {{count}} alternatives",
"app-page.section.info.compatibility": "Compatibility",
"app-page.section.info.compatibility-compatible": "Compatible",
"app-page.section.info.compatibility-not-compatible": "Not compatible",
Expand All @@ -32,6 +33,9 @@
"app-page.section.requires": "Requires",
"app-picker.search": "Search...",
"app-picker.select-app": "Select app...",
"app-settings.connected-to": "{{appName}} is connected to these apps",
"app-settings.save-changes": "Save changes",
"app-settings.title": "Settings",
"app-store.browse-category-apps": "Browse {{category}} apps",
"app-store.category.ai": "AI",
"app-store.category.all": "All apps",
Expand Down Expand Up @@ -59,6 +63,7 @@
"app-updates.updates-available-count_other": "{{count}} updates available",
"app-updates.updating": "Updating...",
"app.install": "Install",
"app.installed": "Installed",
"app.installing": "Installing",
"app.offline": "Not running",
"app.open": "Open",
Expand Down Expand Up @@ -140,6 +145,7 @@
"default-credentials.title": "Credentials for {{app}}",
"default-credentials.username": "Default username",
"desktop.app.context.go-to-store-page": "View in App Store",
"desktop.app.context.settings": "Settings",
"desktop.app.context.show-default-credentials": "Show default credentials",
"desktop.app.context.uninstall": "Uninstall",
"desktop.context-menu.change-wallpaper": "Change wallpaper",
Expand Down Expand Up @@ -185,9 +191,8 @@
"factory-reset.success.description": "All your apps, app data, and account data have been deleted from your device and the system has been reset to factory state.",
"factory-reset.success.title": "Reset successful",
"hello": "Hello",
"install-first.description_one": "Install this app to install {{app}}.",
"install-first.description_other": "Install these apps first to install {{app}}.",
"install-first.title": "{{app}} requires access to",
"install-first.install-app": "Install {{app}}",
"install-first.title": "{{app}} requires these apps",
"install-your-first-app": "Install your first app",
"language": "Language",
"language-description": "Your preferred umbrelOS language",
Expand Down
11 changes: 8 additions & 3 deletions packages/ui/public/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"app-only-over-tor": "{{app}} solo se puede usar sobre Tor. Por favor, accede a tu Umbrel en un navegador Tor en tu URL de acceso remoto (Configuración > Acceso remoto Tor) para abrir esta aplicación.",
"app-page.section.about": "Acerca de",
"app-page.section.credentials.title": "Credenciales predeterminadas",
"app-page.section.dependencies.n-alternatives": "Ver {{count}} alternativas",
"app-page.section.info.compatibility": "Compatibilidad",
"app-page.section.info.compatibility-compatible": "Compatible",
"app-page.section.info.compatibility-not-compatible": "No compatible",
Expand All @@ -32,6 +33,9 @@
"app-page.section.requires": "Requiere",
"app-picker.search": "Buscar...",
"app-picker.select-app": "Seleccionar aplicación...",
"app-settings.connected-to": "{{appName}} está conectado a estas aplicaciones",
"app-settings.save-changes": "Guardar cambios",
"app-settings.title": "Configuración",
"app-store.browse-category-apps": "Explorar aplicaciones de {{category}}",
"app-store.category.ai": "IA",
"app-store.category.all": "Todas las aplicaciones",
Expand Down Expand Up @@ -59,6 +63,7 @@
"app-updates.updates-available-count_other": "{{count}} actualizaciones disponibles",
"app-updates.updating": "Actualizando...",
"app.install": "Instalar",
"app.installed": "Instalado",
"app.installing": "Instalando",
"app.offline": "No en ejecución",
"app.open": "Abrir",
Expand Down Expand Up @@ -140,6 +145,7 @@
"default-credentials.title": "Credenciales para {{app}}",
"default-credentials.username": "Nombre de usuario por defecto",
"desktop.app.context.go-to-store-page": "Ver en la Tienda de Aplicaciones",
"desktop.app.context.settings": "Configuración",
"desktop.app.context.show-default-credentials": "Mostrar credenciales predeterminadas",
"desktop.app.context.uninstall": "Desinstalar",
"desktop.context-menu.change-wallpaper": "Cambiar fondo de pantalla",
Expand Down Expand Up @@ -185,9 +191,8 @@
"factory-reset.success.description": "Todas tus aplicaciones, datos de aplicaciones y datos de cuenta han sido eliminados de tu dispositivo y el sistema se ha restablecido a su estado de fábrica.",
"factory-reset.success.title": "Restablecimiento exitoso",
"hello": "Hola",
"install-first.description_one": "Instala esta aplicación para instalar {{app}}.",
"install-first.description_other": "Instala estas aplicaciones primero para instalar {{app}}.",
"install-first.title": "{{app}} requiere acceso a",
"install-first.install-app": "Instalar {{app}}",
"install-first.title": "{{app}} requiere estas aplicaciones",
"install-your-first-app": "Instala tu primera aplicación",
"language": "Idioma",
"language-description": "Tu idioma preferido para umbrelOS",
Expand Down
11 changes: 8 additions & 3 deletions packages/ui/public/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"app-only-over-tor": "{{app}} ne peut être utilisée que via Tor. Veuillez accéder à votre Umbrel dans un navigateur Tor sur votre URL d'accès à distance (Paramètres > Accès Tor à distance) pour ouvrir cette application.",
"app-page.section.about": "À propos",
"app-page.section.credentials.title": "Identifiants par défaut",
"app-page.section.dependencies.n-alternatives": "Voir {{count}} alternatives",
"app-page.section.info.compatibility": "Compatibilité",
"app-page.section.info.compatibility-compatible": "Compatible",
"app-page.section.info.compatibility-not-compatible": "Non compatible",
Expand All @@ -32,6 +33,9 @@
"app-page.section.requires": "Nécessite",
"app-picker.search": "Rechercher...",
"app-picker.select-app": "Sélectionner une application...",
"app-settings.connected-to": "{{appName}} est connecté à ces applications",
"app-settings.save-changes": "Enregistrer les modifications",
"app-settings.title": "Réglages",
"app-store.browse-category-apps": "Parcourir les applications {{category}}",
"app-store.category.ai": "IA",
"app-store.category.all": "Toutes les applications",
Expand Down Expand Up @@ -59,6 +63,7 @@
"app-updates.updates-available-count_other": "{{count}} mises à jour disponibles",
"app-updates.updating": "Mise à jour...",
"app.install": "Installer",
"app.installed": "Installé",
"app.installing": "Installation",
"app.offline": "Non en cours d'exécution",
"app.open": "Ouvrir",
Expand Down Expand Up @@ -140,6 +145,7 @@
"default-credentials.title": "Identifiants pour {{app}}",
"default-credentials.username": "Nom d'utilisateur par défaut",
"desktop.app.context.go-to-store-page": "Voir dans l'App Store",
"desktop.app.context.settings": "Réglages",
"desktop.app.context.show-default-credentials": "Afficher les identifiants par défaut",
"desktop.app.context.uninstall": "Désinstaller",
"desktop.context-menu.change-wallpaper": "Changer de fond d'écran",
Expand Down Expand Up @@ -185,9 +191,8 @@
"factory-reset.success.description": "Toutes vos applications, données d'applications, et données de compte ont été supprimées de votre appareil et le système a été réinitialisé aux paramètres d'usine.",
"factory-reset.success.title": "Réinitialisation réussie",
"hello": "Bonjour",
"install-first.description_one": "Installez cette application pour installer {{app}}.",
"install-first.description_other": "Installez d'abord ces applications pour installer {{app}}.",
"install-first.title": "{{app}} nécessite l'accès à",
"install-first.install-app": "Installez {{app}}",
"install-first.title": "{{app}} nécessite ces applications",
"install-your-first-app": "Installez votre première application",
"language": "Langue",
"language-description": "Votre langue préférée pour umbrelOS",
Expand Down
11 changes: 8 additions & 3 deletions packages/ui/public/locales/hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"app-only-over-tor": "A {{app}} csak Tor-on keresztül használható. Kérjük, az alkalmazás megnyitásához lépj be az Umbrel-be egy Tor böngészőben a távoli hozzáférési URL-en (Beállítások > Távoli Tor hozzáférés).",
"app-page.section.about": "Rólunk",
"app-page.section.credentials.title": "Alapértelmezett hitelesítési adatok",
"app-page.section.dependencies.n-alternatives": "Lásd a {{count}} alternatívát",
"app-page.section.info.compatibility": "Kompatibilitás",
"app-page.section.info.compatibility-compatible": "Kompatibilis",
"app-page.section.info.compatibility-not-compatible": "Nem kompatibilis",
Expand All @@ -32,6 +33,9 @@
"app-page.section.requires": "Követelmények",
"app-picker.search": "Keresés...",
"app-picker.select-app": "Válassz alkalmazást...",
"app-settings.connected-to": "{{appName}} ezekhez az alkalmazásokhoz csatlakozik",
"app-settings.save-changes": "Változtatások mentése",
"app-settings.title": "Beállítások",
"app-store.browse-category-apps": "Böngészd a(z) {{category}} alkalmazásokat",
"app-store.category.ai": "AI",
"app-store.category.all": "Összes alkalmazás",
Expand Down Expand Up @@ -59,6 +63,7 @@
"app-updates.updates-available-count_other": "{{count}} frissítés elérhető",
"app-updates.updating": "Frissítés...",
"app.install": "Telepítés",
"app.installed": "Telepítve",
"app.installing": "Telepítés folyamatban",
"app.offline": "Nem fut",
"app.open": "Megnyitás",
Expand Down Expand Up @@ -140,6 +145,7 @@
"default-credentials.title": "{{app}} hitelesítési adatai",
"default-credentials.username": "Alapértelmezett felhasználónév",
"desktop.app.context.go-to-store-page": "Megtekintés az Alkalmazásboltban",
"desktop.app.context.settings": "Beállítások",
"desktop.app.context.show-default-credentials": "Alapértelmezett hitelesítési adatok megjelenítése",
"desktop.app.context.uninstall": "Eltávolítás",
"desktop.context-menu.change-wallpaper": "Háttérkép megváltoztatása",
Expand Down Expand Up @@ -185,9 +191,8 @@
"factory-reset.success.description": "Az összes alkalmazás, alkalmazásadat és fiókadat törlésre került az eszközödről, és a rendszer visszaállt gyári állapotába.",
"factory-reset.success.title": "Sikeres visszaállítás",
"hello": "Helló",
"install-first.description_one": "Telepítsd ezt az alkalmazást a(z) {{app}} telepítéséhez.",
"install-first.description_other": "Telepítsd ezeket az alkalmazásokat a(z) {{app}} telepítéséhez.",
"install-first.title": "{{app}} hozzáférést igényel",
"install-first.install-app": "Telepítsd a(z) {{app}} alkalmazást",
"install-first.title": "{{app}} a következő alkalmazásokat igényli",
"install-your-first-app": "Telepítsd az első alkalmazásod",
"language": "Nyelv",
"language-description": "Az általad preferált umbrelOS nyelv",
Expand Down
11 changes: 8 additions & 3 deletions packages/ui/public/locales/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"app-only-over-tor": "{{app}} può essere utilizzata solo tramite Tor. Accedi al tuo Umbrel in un browser Tor all'URL di accesso remoto (Impostazioni > Accesso remoto Tor) per aprire questa app.",
"app-page.section.about": "Informazioni",
"app-page.section.credentials.title": "Credenziali predefinite",
"app-page.section.dependencies.n-alternatives": "Vedi {{count}} alternative",
"app-page.section.info.compatibility": "Compatibilità",
"app-page.section.info.compatibility-compatible": "Compatibile",
"app-page.section.info.compatibility-not-compatible": "Non compatibile",
Expand All @@ -32,6 +33,9 @@
"app-page.section.requires": "Richiede",
"app-picker.search": "Cerca...",
"app-picker.select-app": "Seleziona app...",
"app-settings.connected-to": "{{appName}} è connesso a queste app",
"app-settings.save-changes": "Salva modifiche",
"app-settings.title": "Impostazioni",
"app-store.browse-category-apps": "Esplora le app {{category}}",
"app-store.category.ai": "AI",
"app-store.category.all": "Tutte le app",
Expand Down Expand Up @@ -59,6 +63,7 @@
"app-updates.updates-available-count_other": "{{count}} aggiornamenti disponibili",
"app-updates.updating": "Aggiornamento in corso...",
"app.install": "Installa",
"app.installed": "Installata",
"app.installing": "Installazione",
"app.offline": "Non in esecuzione",
"app.open": "Apri",
Expand Down Expand Up @@ -140,6 +145,7 @@
"default-credentials.title": "Credenziali per {{app}}",
"default-credentials.username": "Nome utente predefinito",
"desktop.app.context.go-to-store-page": "Visualizza in App Store",
"desktop.app.context.settings": "Impostazioni",
"desktop.app.context.show-default-credentials": "Mostra credenziali predefinite",
"desktop.app.context.uninstall": "Disinstalla",
"desktop.context-menu.change-wallpaper": "Cambia sfondo",
Expand Down Expand Up @@ -185,9 +191,8 @@
"factory-reset.success.description": "Tutte le tue app, i dati delle app e i dati dell'account sono stati eliminati dal tuo dispositivo e il sistema è stato ripristinato allo stato di fabbrica.",
"factory-reset.success.title": "Reset riuscito",
"hello": "Ciao",
"install-first.description_one": "Installa questa app per installare {{app}}.",
"install-first.description_other": "Installa prima queste app per installare {{app}}.",
"install-first.title": "{{app}} richiede l'accesso a",
"install-first.install-app": "Installa {{app}}",
"install-first.title": "{{app}} richiede queste app",
"install-your-first-app": "Installa la tua prima app",
"language": "Lingua",
"language-description": "La tua lingua preferita per umbrelOS",
Expand Down
11 changes: 8 additions & 3 deletions packages/ui/public/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"app-only-over-tor": "{{app}}はTor経由でのみ使用できます。このアプリを開くには、TorブラウザでリモートアクセスURL(設定 > リモートTorアクセス)にアクセスしてください。",
"app-page.section.about": "",
"app-page.section.credentials.title": "デフォルト資格情報",
"app-page.section.dependencies.n-alternatives": "{{count}} つの代替案を表示",
"app-page.section.info.compatibility": "互換性",
"app-page.section.info.compatibility-compatible": "互換あり",
"app-page.section.info.compatibility-not-compatible": "互換性がありません",
Expand All @@ -32,6 +33,9 @@
"app-page.section.requires": "必要条件",
"app-picker.search": "検索...",
"app-picker.select-app": "アプリを選択...",
"app-settings.connected-to": "{{appName}}はこれらのアプリと接続されています",
"app-settings.save-changes": "変更を保存",
"app-settings.title": "設定",
"app-store.browse-category-apps": "{{category}}アプリを閲覧",
"app-store.category.ai": "AI",
"app-store.category.all": "すべてのアプリ",
Expand Down Expand Up @@ -59,6 +63,7 @@
"app-updates.updates-available-count_other": "{{count}}個のアップデートが利用可能",
"app-updates.updating": "更新中...",
"app.install": "インストール",
"app.installed": "インストール済み",
"app.installing": "インストール中",
"app.offline": "実行されていません",
"app.open": "開く",
Expand Down Expand Up @@ -140,6 +145,7 @@
"default-credentials.title": "{{app}}の資格情報",
"default-credentials.username": "デフォルトユーザー名",
"desktop.app.context.go-to-store-page": "App Storeで表示",
"desktop.app.context.settings": "設定",
"desktop.app.context.show-default-credentials": "デフォルトの資格情報を表示",
"desktop.app.context.uninstall": "アンインストール",
"desktop.context-menu.change-wallpaper": "壁紙を変更",
Expand Down Expand Up @@ -185,9 +191,8 @@
"factory-reset.success.description": "すべてのアプリ、アプリデータ、アカウントデータがデバイスから削除され、システムが工場出荷時の状態にリセットされました。",
"factory-reset.success.title": "リセット成功",
"hello": "こんにちは",
"install-first.description_one": "このアプリをインストールするためには、まず{{app}}をインストールしてください。",
"install-first.description_other": "{{app}}をインストールするには、まずこれらのアプリをインストールしてください。",
"install-first.title": "{{app}}のインストールにはアクセスが必要",
"install-first.install-app": "{{app}}をインストール",
"install-first.title": "{{app}}はこれらのアプリを必要とします",
"install-your-first-app": "最初のアプリをインストール",
"language": "言語",
"language-description": "あなたが好むumbrelOSの言語",
Expand Down
Loading

0 comments on commit e3d1824

Please sign in to comment.