add "community" to packager info

This commit is contained in:
Girish Ramakrishnan
2026-02-21 12:12:36 +01:00
parent 3120a2c43f
commit 95fcfce9cd
5 changed files with 81 additions and 36 deletions
+1 -1
View File
@@ -1331,7 +1331,7 @@
"info": { "info": {
"description": "App title & version", "description": "App title & version",
"appId": "App ID", "appId": "App ID",
"packageVersion": "Package", "packageVersion": "Package version",
"lastUpdated": "Last updated", "lastUpdated": "Last updated",
"customAppUpdateInfo": "Auto-update is not available for custom apps.", "customAppUpdateInfo": "Auto-update is not available for custom apps.",
"installedAt": "Installed", "installedAt": "Installed",
+31 -17
View File
@@ -6,10 +6,10 @@
"users": "Usuarios", "users": "Usuarios",
"errorUserManagementSelectAtLeastOne": "Selecciona al menos un usuario o un grupo", "errorUserManagementSelectAtLeastOne": "Selecciona al menos un usuario o un grupo",
"userManagementSelectUsers": "Permitir solo a los siguientes usuarios y grupos", "userManagementSelectUsers": "Permitir solo a los siguientes usuarios y grupos",
"userManagementAllUsers": "Permitir a todos los usuarios de este Cloudron", "userManagementAllUsers": "Permitir a todos los usuarios en este Cloudron",
"userManagementLeaveToApp": "Deja la gestión de usuarios a la aplicación", "userManagementLeaveToApp": "Deja la gestión de usuarios a la aplicación",
"userManagementMailbox": "Todos los usuarios con un buzón en este Cloudron tienen acceso.", "userManagementMailbox": "Los usuarios con un <a href=\"/#/mailboxes\">buzón de correo</a> pueden iniciar sesión con el correo electrónico de su buzón y la contraseña de Cloudron.",
"userManagementNone": "Esta aplicación tiene su propia gestión de usuarios. Esta configuración determina si esta aplicación está visible en el panel del usuario.", "userManagementNone": "Esta aplicación tiene su propia gestión de usuarios.",
"userManagement": "Gestión de usuarios", "userManagement": "Gestión de usuarios",
"manualWarning": "Configurar manualmente los registros DNS A (IPv4) y AAAA (IPv6) para <b>{{ location }}</b> que apuntan a este servidor", "manualWarning": "Configurar manualmente los registros DNS A (IPv4) y AAAA (IPv6) para <b>{{ location }}</b> que apuntan a este servidor",
"locationPlaceholder": "Dejar vacío para usar solo el dominio", "locationPlaceholder": "Dejar vacío para usar solo el dominio",
@@ -31,13 +31,16 @@
"appNotFoundDialog": { "appNotFoundDialog": {
"description": "No hay aplicación <b>{{ appId }}</b> con versión <b>{{ version }}</b>.", "description": "No hay aplicación <b>{{ appId }}</b> con versión <b>{{ version }}</b>.",
"title": "Aplicación no encontrada" "title": "Aplicación no encontrada"
},
"action": {
"addCustomApp": "Añadir Aplicación personalizada"
} }
}, },
"main": { "main": {
"rebootDialog": { "rebootDialog": {
"rebootAction": "Reiniciar ahora", "rebootAction": "Reiniciar ahora",
"description": "Use esto para aplicar actualizaciones de seguridad o si experimenta un comportamiento inesperado. Todas las aplicaciones y servicios que se ejecutan actualmente en este Cloudron se iniciarán automáticamente cuando se complete el reinicio.", "description": "Todas las aplicaciones y servicios se reiniciarán automáticamente.<br/><br/>¿Reiniciar el servidor ahora?",
"title": "¿Realmente quieres reiniciar el servidor?" "title": "Reiniciar el servidor"
}, },
"action": { "action": {
"logs": "Registros", "logs": "Registros",
@@ -45,10 +48,15 @@
"remove": "Borrar", "remove": "Borrar",
"edit": "Editar", "edit": "Editar",
"add": "Añadir", "add": "Añadir",
"next": "Siguiente" "next": "Siguiente",
"configure": "Configurar",
"restart": "Reanudar",
"reset": "Reiniciar",
"loadMore": "Cargar más"
}, },
"table": { "table": {
"version": "Versión" "version": "Versión",
"created": "Creado"
}, },
"actions": "Acciones", "actions": "Acciones",
"displayName": "Nombre para mostrar", "displayName": "Nombre para mostrar",
@@ -75,7 +83,13 @@
"groups": "Grupos" "groups": "Grupos"
}, },
"statusEnabled": "Habilitado", "statusEnabled": "Habilitado",
"loadingPlaceholder": "Cargando" "loadingPlaceholder": "Cargando",
"platform": {
"startupFailed": "El inicio de la plataforma falló"
},
"sidebar": {
"collapseAction": "Contraer la barra lateral"
}
}, },
"apps": { "apps": {
"searchPlaceholder": "Busca Aplicaciones", "searchPlaceholder": "Busca Aplicaciones",
@@ -84,7 +98,7 @@
"title": "Todavía no tienes acceso a ninguna aplicación." "title": "Todavía no tienes acceso a ninguna aplicación."
}, },
"noApps": { "noApps": {
"description": "¿Qué te parece si instalas algunas? Echa un vistazo a la <a href=\"{{ appStoreLink }}\"> Tienda de Aplicaciones</a>", "description": "¿Qué tal si instalas algunas? Visita la <a href=\"{{ appStoreLink }}\">App Store</a>.",
"title": "¡No hay aplicaciones instaladas todavía!" "title": "¡No hay aplicaciones instaladas todavía!"
}, },
"title": "Mis Aplicaciones", "title": "Mis Aplicaciones",
@@ -105,22 +119,22 @@
"externalLdap": { "externalLdap": {
"errorSelfSignedCert": "El servidor está utilizando un certificado no válido o autofirmado.", "errorSelfSignedCert": "El servidor está utilizando un certificado no válido o autofirmado.",
"bindUsername": "Enlazar DN/Nombre de usuario (opcional)", "bindUsername": "Enlazar DN/Nombre de usuario (opcional)",
"bindPassword": "Enlazar Contraseña (opcional)", "bindPassword": "Vincular contraseña (opcional)",
"groupBaseDn": "Grupo Base DN", "groupBaseDn": "Grupo Base DN",
"baseDn": "DN Base", "baseDn": "DN Base",
"configureAction": "Configurar", "configureAction": "Configurar",
"syncAction": "Sincronizar", "syncAction": "Sincronizar ahora",
"autocreateUsersOnLogin": "Crear usuarios automáticamente al iniciar sesión", "autocreateUsersOnLogin": "Crear usuarios automáticamente al iniciar sesión",
"groupnameField": "Campo de Nombre de Grupo", "groupnameField": "Campo de Nombre de Grupo",
"groupFilter": "Filtro de Grupo", "groupFilter": "Filtro de Grupo",
"syncGroups": "Sincronizar Grupos", "syncGroups": "Sincronizar grupos",
"usernameField": "Campo de Nombre de Usuario", "usernameField": "Campo de Nombre de Usuario",
"filter": "Filtro", "filter": "Filtro",
"acceptSelfSignedCert": "Aceptar Certificado Autofirmado", "acceptSelfSignedCert": "Aceptar certificado autofirmado",
"server": "URL del Servidor", "server": "URL del Servidor",
"provider": "Proveedor", "provider": "Proveedor",
"noopInfo": "La autentificación LDAP no está configurada.", "noopInfo": "No hay ningún directorio externo configurado",
"description": "Esta configuración sincroniza y autentifica usuarios y grupos desde un servidor LDAP o Active Directory externo. La sincronización se ejecuta periódicamente pero también se puede activar manualmente.", "description": "Sincroniza y autentifica usuarios y grupos desde un servidor LDAP o Active Directory externo. La sincronización se ejecuta periódicamente cada 4 horas.",
"title": "Conectar un directorio externo", "title": "Conectar un directorio externo",
"auth": "Auth", "auth": "Auth",
"disableWarning": "La fuente de autentificación de todos los usuarios existentes se restablecerá para autentificarse en la base de datos de contraseñas local." "disableWarning": "La fuente de autentificación de todos los usuarios existentes se restablecerá para autentificarse en la base de datos de contraseñas local."
@@ -200,11 +214,11 @@
"title": "Borrar Usuario {{ username }}" "title": "Borrar Usuario {{ username }}"
}, },
"user": { "user": {
"activeCheckbox": "Usuario activo", "activeCheckbox": "El usuario está activo",
"recoveryEmail": "Correo electrónico de recuperación de contraseña", "recoveryEmail": "Correo electrónico de recuperación de contraseña",
"primaryEmail": "Email Principal", "primaryEmail": "Email Principal",
"displayName": "Nombre para mostrar", "displayName": "Nombre para mostrar",
"usernamePlaceholder": "Opcional. Si no se proporciona, el usuario puede elegirlo durante el registro", "usernamePlaceholder": "Opcional. Si no se proporciona, el usuario puede elegirlo durante el registro.",
"noGroups": "No hay grupos disponibles.", "noGroups": "No hay grupos disponibles.",
"groups": "Grupos", "groups": "Grupos",
"role": "Rol", "role": "Rol",
+37 -9
View File
@@ -280,7 +280,8 @@
"app": "Aplikasi", "app": "Aplikasi",
"title": "Kata sandi Aplikasi", "title": "Kata sandi Aplikasi",
"noPasswordsPlaceholder": "Tidak ada kata sandi aplikasi", "noPasswordsPlaceholder": "Tidak ada kata sandi aplikasi",
"description": "Kata sandi aplikasi adalah langkah keamanan untuk melindungi akun pengguna Cloudron Anda. Jika Anda perlu mengakses aplikasi Cloudron dari aplikasi seluler atau klien yang tidak tepercaya, Anda dapat masuk dengan nama pengguna Anda dan kata sandi alternatif yang dihasilkan di sini." "description": "Kata sandi aplikasi adalah langkah keamanan untuk melindungi akun pengguna Cloudron Anda. Jika Anda perlu mengakses aplikasi Cloudron dari aplikasi seluler atau klien yang tidak tepercaya, Anda dapat masuk dengan nama pengguna Anda dan kata sandi alternatif yang dihasilkan di sini.",
"expires": "Kadaluarsa"
}, },
"apiTokens": { "apiTokens": {
"name": "Nama", "name": "Nama",
@@ -300,7 +301,10 @@
"token": "Token", "token": "Token",
"enable": "Aktifkan", "enable": "Aktifkan",
"mandatorySetup": "2FA diperlukan untuk mengakses dasbor. Silakan selesaikan pengaturan untuk melanjutkan.", "mandatorySetup": "2FA diperlukan untuk mengakses dasbor. Silakan selesaikan pengaturan untuk melanjutkan.",
"authenticatorAppDescription": "Gunakan Google Authenticator (<a href=\"{{ googleAuthenticatorPlayStoreLink }}\" target=\"_blank\">Android</a>, <a href=\"{{ googleAuthenticatorITunesLink }}\" target=\"_blank\">iOS</a>), FreeOTP authenticator (<a href=\"{{ freeOTPPlayStoreLink }}\" target=\"_blank\">Android</a>, <a href=\"{{ freeOTPITunesLink }}\" target=\"_blank\">iOS</a>) atau aplikasi TOTP serupa untuk memindai kode rahasia." "authenticatorAppDescription": "Gunakan Google Authenticator (<a href=\"{{ googleAuthenticatorPlayStoreLink }}\" target=\"_blank\">Android</a>, <a href=\"{{ googleAuthenticatorITunesLink }}\" target=\"_blank\">iOS</a>), FreeOTP authenticator (<a href=\"{{ freeOTPPlayStoreLink }}\" target=\"_blank\">Android</a>, <a href=\"{{ freeOTPITunesLink }}\" target=\"_blank\">iOS</a>) atau aplikasi TOTP serupa untuk memindai kode rahasia.",
"passkeyOption": "Pengaturan passkey",
"totpOption": "Pengaturan TOTP",
"registerPasskey": "Daftarkan passkey"
}, },
"language": "Bahasa", "language": "Bahasa",
"loginTokens": { "loginTokens": {
@@ -318,7 +322,8 @@
"title": "Tambahkan Kata Sandi Aplikasi", "title": "Tambahkan Kata Sandi Aplikasi",
"name": "Nama kata sandi", "name": "Nama kata sandi",
"description": "Gunakan kata sandi berikut untuk mengautentikasi terhadap aplikasi:", "description": "Gunakan kata sandi berikut untuk mengautentikasi terhadap aplikasi:",
"copyNow": "Silakan salin kata sandi sekarang. Kata sandi ini tidak akan ditampilkan lagi untuk alasan keamanan." "copyNow": "Silakan salin kata sandi sekarang. Kata sandi ini tidak akan ditampilkan lagi untuk alasan keamanan.",
"expiresAt": "Tanggal kedaluwarsa"
}, },
"disable2FAAction": "Nonaktifkan 2FA", "disable2FAAction": "Nonaktifkan 2FA",
"enable2FAAction": "Aktifkan 2FA", "enable2FAAction": "Aktifkan 2FA",
@@ -354,6 +359,12 @@
"removeAppPassword": { "removeAppPassword": {
"title": "Hapus Kata sandi Aplikasi", "title": "Hapus Kata sandi Aplikasi",
"description": "Hapus kata sandi aplikasi \"{{ name }}\"?" "description": "Hapus kata sandi aplikasi \"{{ name }}\"?"
},
"twoFactorAuth": {
"title": "Autentikasi dua faktor",
"disabled": "Dinonaktifkan",
"totpEnabled": "Menggunakan kata sandi sekali pakai berbasis waktu (TOTP)",
"passkeyEnabled": "Menggunakan passkey"
} }
}, },
"backups": { "backups": {
@@ -800,7 +811,9 @@
"changeDashboardDomain": { "changeDashboardDomain": {
"title": "Dasbor Domain", "title": "Dasbor Domain",
"description": "Ubah dashboard ke subdomain 'my' pada domain yang dipilih", "description": "Ubah dashboard ke subdomain 'my' pada domain yang dipilih",
"changeAction": "Ubah domain" "changeAction": "Ubah domain",
"confirmMessage": "Ini akan membatalkan semua passkey untuk pengguna.",
"confirmTitle": "Apakah Anda benar-benar ingin mengubah domain dasbor?"
}, },
"domainDialog": { "domainDialog": {
"addTitle": "Tambahkan Domain", "addTitle": "Tambahkan Domain",
@@ -858,7 +871,9 @@
"inwxUsername": "Nama pengguna INWX", "inwxUsername": "Nama pengguna INWX",
"inwxPassword": "Kata sandi INWX", "inwxPassword": "Kata sandi INWX",
"customNameservers": "Domain menggunakan nameserver kustom (vanity)", "customNameservers": "Domain menggunakan nameserver kustom (vanity)",
"zoneNamePlaceholder": "Opsional. Jika tidak disediakan, akan menggunakan domain utama sebagai bawaan." "zoneNamePlaceholder": "Opsional. Jika tidak disediakan, akan menggunakan domain utama sebagai bawaan.",
"carddavLocation": "Lokasi server CardDAV",
"caldavLocation": "Lokasi server CalDAV"
}, },
"removeDialog": { "removeDialog": {
"title": "Hapus Domain", "title": "Hapus Domain",
@@ -919,7 +934,8 @@
"restartApp": "Mulai ulang Aplikasi", "restartApp": "Mulai ulang Aplikasi",
"uploadFolder": "Unggah folder", "uploadFolder": "Unggah folder",
"openTerminal": "Buka terminal", "openTerminal": "Buka terminal",
"openLogs": "Buka log" "openLogs": "Buka log",
"refresh": "Segarkan"
}, },
"extractionInProgress": "Ekstraksi sedang berlangsung", "extractionInProgress": "Ekstraksi sedang berlangsung",
"pasteInProgress": "Penempelan sedang berlangsung", "pasteInProgress": "Penempelan sedang berlangsung",
@@ -1471,7 +1487,17 @@
"title": "Arsipkan Aplikasi", "title": "Arsipkan Aplikasi",
"description": "Hapus aplikasi {{ app }} dan pindahkan cadangan terbarunya (dibuat pada {{ date }}) ke arsip aplikasi?" "description": "Hapus aplikasi {{ app }} dan pindahkan cadangan terbarunya (dibuat pada {{ date }}) ke arsip aplikasi?"
}, },
"updateAvailableTooltip": "Pembaruan tersedia" "updateAvailableTooltip": "Pembaruan tersedia",
"start": {
"title": "Mulai",
"description": "Mulai aplikasi untuk membuatnya tersedia kembali.",
"action": "Mulai"
},
"stop": {
"action": "Berhenti",
"title": "Berhenti",
"description": "Hentikan aplikasi untuk menghemat sumber daya. Cadangkan sebelum menghentikan untuk mempertahankan perubahan terakhir."
}
}, },
"setupAccount": { "setupAccount": {
"errorPassword": "Kata sandi harus setidaknya 8 karakter", "errorPassword": "Kata sandi harus setidaknya 8 karakter",
@@ -1664,7 +1690,8 @@
"resetPasswordAction": "Atur ulang kata sandi", "resetPasswordAction": "Atur ulang kata sandi",
"errorIncorrect2FAToken": "Token 2FA tidak valid", "errorIncorrect2FAToken": "Token 2FA tidak valid",
"errorInternal": "Terjadi kesalahan internal, coba lagi nanti", "errorInternal": "Terjadi kesalahan internal, coba lagi nanti",
"loginAction": "Masuk" "loginAction": "Masuk",
"usePasskeyAction": "Gunakan passkey"
}, },
"passwordReset": { "passwordReset": {
"title": "Pengaturan ulang kata sandi", "title": "Pengaturan ulang kata sandi",
@@ -1688,6 +1715,7 @@
} }
}, },
"communityapp": { "communityapp": {
"installwarning": "Aplikasi komunitas tidak ditinjau oleh Cloudron. Hanya instal aplikasi dari pengembang tepercaya. Kode pihak ketiga dapat membahayakan sistem Anda." "installwarning": "Aplikasi komunitas tidak ditinjau oleh Cloudron. Hanya instal aplikasi dari pengembang tepercaya. Kode pihak ketiga dapat membahayakan sistem Anda.",
"unstablewarning": "Aplikasi ini ditandai sebagai tidak stabil oleh pengembangnya."
} }
} }
+5 -2
View File
@@ -684,7 +684,9 @@
"changeDashboardDomain": { "changeDashboardDomain": {
"changeAction": "Domein aanpassen", "changeAction": "Domein aanpassen",
"title": "Dashboard Domein", "title": "Dashboard Domein",
"description": "Verander het Dashboard naar het “my” subdomein van het geselecteerde domein" "description": "Verander het Dashboard naar het “my” subdomein van het geselecteerde domein",
"confirmMessage": "Dit zal alle passkeys voor gebruikers ongeldig maken.",
"confirmTitle": "Wil je echt het dashboard-domein wijzigen?"
}, },
"removeDialog": { "removeDialog": {
"title": "Verwijder domein", "title": "Verwijder domein",
@@ -1282,7 +1284,8 @@
"newFolder": "Nieuwe map", "newFolder": "Nieuwe map",
"uploadFolder": "Upload map", "uploadFolder": "Upload map",
"openTerminal": "Open terminal", "openTerminal": "Open terminal",
"openLogs": "Open logbestanden" "openLogs": "Open logbestanden",
"refresh": "Ververs"
}, },
"extractionInProgress": "Bezig met uitpakken", "extractionInProgress": "Bezig met uitpakken",
"pasteInProgress": "Bezig met plakken", "pasteInProgress": "Bezig met plakken",
+7 -7
View File
@@ -84,13 +84,6 @@ onMounted(() => {
<div class="info-value" v-else>{{ app.manifest.dockerImage }}</div> <div class="info-value" v-else>{{ app.manifest.dockerImage }}</div>
</div> </div>
<div class="info-row" v-if="app.versionsUrl">
<div class="info-label">{{ $t('app.updates.info.packager') }}</div>
<div class="info-value">
<a :href="app.manifest.packagerUrl" target="_blank">{{ app.manifest.packagerName }}</a>
</div>
</div>
<div class="info-row"> <div class="info-row">
<div class="info-label">{{ $t('app.updates.info.appId') }}</div> <div class="info-label">{{ $t('app.updates.info.appId') }}</div>
<div class="info-value"> <div class="info-value">
@@ -108,6 +101,13 @@ onMounted(() => {
<div class="info-value" v-else>{{ app.manifest.version }} <ClipboardAction plain :value="app.manifest.version"/></div> <div class="info-value" v-else>{{ app.manifest.version }} <ClipboardAction plain :value="app.manifest.version"/></div>
</div> </div>
<div class="info-row" v-if="app.versionsUrl">
<div class="info-label">{{ $t('app.updates.info.packager') }}</div>
<div class="info-value">
<a :href="app.manifest.packagerUrl" target="_blank">{{ app.manifest.packagerName }}</a> (community)
</div>
</div>
<div class="info-row"> <div class="info-row">
<div class="info-label">{{ $t('app.updates.info.installedAt') }}</div> <div class="info-label">{{ $t('app.updates.info.installedAt') }}</div>
<div class="info-value">{{ prettyDate(app.creationTime) }}</div> <div class="info-value">{{ prettyDate(app.creationTime) }}</div>