Compare commits
32 Commits
v0.16.1-be
...
v1.0.0
Author | SHA1 | Date | |
---|---|---|---|
|
b239f9bd05 | ||
|
1acc923ec2 | ||
|
8d6edfb91f | ||
|
491b62bb0d | ||
|
d1413fc478 | ||
|
761f7039e9 | ||
|
59783a341d | ||
|
0100fa4236 | ||
|
f6f9ed68dc | ||
|
8adb5e84d1 | ||
|
3940b65156 | ||
|
98e7f27eab | ||
|
7cf5cafd75 | ||
|
d750e35273 | ||
|
1f12e12130 | ||
|
4a4fb4716e | ||
|
efe6ec0d43 | ||
|
00d605e195 | ||
|
f06de8d19f | ||
|
fac335c849 | ||
|
5bef546ae4 | ||
|
b690cd6a67 | ||
|
dbee4a2657 | ||
|
67420f293b | ||
|
d1d6b0792b | ||
|
2ec039ba0f | ||
|
4b9b9a10ad | ||
|
4193d8ada1 | ||
|
4701b090b0 | ||
|
8b0c85827c | ||
![]() |
57e02d1c80 | ||
|
7987083555 |
1
.flutter
Submodule
25
.github/workflows/release.yml
vendored
@@ -23,16 +23,27 @@ jobs:
|
|||||||
gpg_private_key: ${{ secrets.PGP_KEY_BASE64 }}
|
gpg_private_key: ${{ secrets.PGP_KEY_BASE64 }}
|
||||||
passphrase: ${{ secrets.PGP_PASSPHRASE }}
|
passphrase: ${{ secrets.PGP_PASSPHRASE }}
|
||||||
|
|
||||||
|
- name: Check submodule
|
||||||
|
id: check_submodule
|
||||||
|
run: |
|
||||||
|
SUBMODULE_COMMIT_LONG="$(git submodule status | head -1 | tail -c +2 | awk '{print $1}')"
|
||||||
|
FLUTTER_COMMIT_SHORT="$(flutter --version | head -2 | tail -1 | awk '{print $4}')"
|
||||||
|
echo "SUBMODULE_COMMIT_LONG=$SUBMODULE_COMMIT_LONG, FLUTTER_COMMIT_SHORT=$FLUTTER_COMMIT_SHORT"
|
||||||
|
if ! [[ "$SUBMODULE_COMMIT_LONG" =~ ^$FLUTTER_COMMIT_SHORT ]]; then
|
||||||
|
echo "Your submodule has not been updated!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Extract Version
|
- name: Extract Version
|
||||||
id: extract_version
|
id: extract_version
|
||||||
run: |
|
run: |
|
||||||
VERSION=$(grep -oP "^version: [^\+]+" pubspec.yaml | tail -c +10)
|
VERSION=$(grep -oP "^version: [^\+]+" pubspec.yaml | tail -c +10)
|
||||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
if [ ${{ inputs.beta }} == true ]; then BETA=true; else BETA=false; fi
|
if [ ${{ inputs.beta }} == true ]; then BETA=true; else BETA=false; fi
|
||||||
echo "beta=$BETA" >> $GITHUB_OUTPUT
|
echo "beta=$BETA" >> $GITHUB_OUTPUT
|
||||||
TAG="v$VERSION"
|
TAG="v$VERSION"
|
||||||
if [ $BETA == true ]; then TAG="$TAG"-beta; fi
|
if [ $BETA == true ]; then TAG="$TAG"-beta; fi
|
||||||
echo "tag=$TAG" >> $GITHUB_OUTPUT
|
echo "tag=$TAG" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Build APKs
|
- name: Build APKs
|
||||||
run: |
|
run: |
|
||||||
|
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule ".flutter"]
|
||||||
|
path = .flutter
|
||||||
|
url = https://github.com/flutter/flutter/
|
@@ -86,7 +86,7 @@
|
|||||||
"author": "Autor",
|
"author": "Autor",
|
||||||
"upToDateApps": "Apps mit aktueller Version",
|
"upToDateApps": "Apps mit aktueller Version",
|
||||||
"nonInstalledApps": "Nicht installierte Apps",
|
"nonInstalledApps": "Nicht installierte Apps",
|
||||||
"importExport": "Import Export",
|
"importExport": "Import/Export",
|
||||||
"settings": "Einstellungen",
|
"settings": "Einstellungen",
|
||||||
"exportedTo": "Exportiert zu {}",
|
"exportedTo": "Exportiert zu {}",
|
||||||
"obtainiumExport": "Obtainium-Export",
|
"obtainiumExport": "Obtainium-Export",
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
"selectURL": "URL auswählen",
|
"selectURL": "URL auswählen",
|
||||||
"selectURLs": "URLs auswählen",
|
"selectURLs": "URLs auswählen",
|
||||||
"pick": "Auswählen",
|
"pick": "Auswählen",
|
||||||
"theme": "Thema",
|
"theme": "Theme",
|
||||||
"dark": "Dunkel",
|
"dark": "Dunkel",
|
||||||
"light": "Hell",
|
"light": "Hell",
|
||||||
"followSystem": "System folgen",
|
"followSystem": "System folgen",
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
"yesMarkUpdated": "Ja, als aktualisiert markieren",
|
"yesMarkUpdated": "Ja, als aktualisiert markieren",
|
||||||
"fdroid": "offizielles F-Droid-Repo",
|
"fdroid": "offizielles F-Droid-Repo",
|
||||||
"appIdOrName": "App ID oder Name",
|
"appIdOrName": "App ID oder Name",
|
||||||
"appId": "App-ID",
|
"appId": "App ID",
|
||||||
"appWithIdOrNameNotFound": "Es wurde keine App mit dieser ID oder diesem Namen gefunden",
|
"appWithIdOrNameNotFound": "Es wurde keine App mit dieser ID oder diesem Namen gefunden",
|
||||||
"reposHaveMultipleApps": "Repos können mehrere Apps enthalten",
|
"reposHaveMultipleApps": "Repos können mehrere Apps enthalten",
|
||||||
"fdroidThirdPartyRepo": "F-Droid Drittparteienrepo",
|
"fdroidThirdPartyRepo": "F-Droid Drittparteienrepo",
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
"changes": "Änderungen",
|
"changes": "Änderungen",
|
||||||
"releaseDate": "Veröffentlichungsdatum",
|
"releaseDate": "Veröffentlichungsdatum",
|
||||||
"importFromURLsInFile": "Importieren von URLs aus Datei (z. B. OPML)",
|
"importFromURLsInFile": "Importieren von URLs aus Datei (z. B. OPML)",
|
||||||
"versionDetectionExplanation": "Versionszeichenfolge mit der vom Betriebssystem erkannten Version abgleichen",
|
"versionDetectionExplanation": "Abgleich der Versionsnummer mit der vom Betriebssystem erkannten Version",
|
||||||
"versionDetection": "Versionserkennung",
|
"versionDetection": "Versionserkennung",
|
||||||
"standardVersionDetection": "Standardversionserkennung",
|
"standardVersionDetection": "Standardversionserkennung",
|
||||||
"groupByCategory": "Nach Kategorie gruppieren",
|
"groupByCategory": "Nach Kategorie gruppieren",
|
||||||
@@ -283,28 +283,28 @@
|
|||||||
"parallelDownloads": "Erlaube parallele Downloads",
|
"parallelDownloads": "Erlaube parallele Downloads",
|
||||||
"installMethod": "Installationsmethode",
|
"installMethod": "Installationsmethode",
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"root": "Wurzel",
|
"root": "Root",
|
||||||
"shizukuBinderNotFound": "Kompatibler Shizukudienst wurde nicht gefunden",
|
"shizukuBinderNotFound": "Kompatibler Shizukudienst wurde nicht gefunden",
|
||||||
"useSystemFont": "Verwende die Systemschriftart",
|
"useSystemFont": "Verwende die Systemschriftart",
|
||||||
"systemFontError": "Fehler beim Laden der Systemschriftart: {}",
|
"systemFontError": "Fehler beim Laden der Systemschriftart: {}",
|
||||||
"useVersionCodeAsOSVersion": "Verwende die Appversion als erkannte Version vom Betriebssystem",
|
"useVersionCodeAsOSVersion": "Verwende die Appversion als erkannte Version vom Betriebssystem",
|
||||||
"requestHeader": "Request Header",
|
"requestHeader": "Request Header",
|
||||||
"useLatestAssetDateAsReleaseDate": "Den letzten Asset-Upload als Veröffentlichungsdatum verwenden",
|
"useLatestAssetDateAsReleaseDate": "Den letzten Asset-Upload als Veröffentlichungsdatum verwenden",
|
||||||
"defaultPseudoVersioningMethod": "Standard-Pseudoversionierungsmethode",
|
"defaultPseudoVersioningMethod": "Standardmäßiges Verfahren zur Pseudo-Versionierung",
|
||||||
"partialAPKHash": "Teilweiser APK-Hash",
|
"partialAPKHash": "partieller APK-Hash",
|
||||||
"APKLinkHash": "APK-Link-Hash",
|
"APKLinkHash": "APK-Link-Hash",
|
||||||
"directAPKLink": "Direkter APK-Link",
|
"directAPKLink": "Direkter APK-Link",
|
||||||
"pseudoVersionInUse": "Eine Pseudoversion ist im Einsatz",
|
"pseudoVersionInUse": "Pseudoversionen sind in Benutzung",
|
||||||
"installed": "Eingerichtet",
|
"installed": "Installiert",
|
||||||
"latest": "Neueste",
|
"latest": "Neueste(r)",
|
||||||
"invertRegEx": "Regulären Ausdruck umkehren",
|
"invertRegEx": "Regulären Ausdruck invertieren",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "App entfernen?",
|
"one": "App entfernen?",
|
||||||
"other": "Apps entfernen?"
|
"other": "Apps entfernen?"
|
||||||
},
|
},
|
||||||
"tooManyRequestsTryAgainInMinutes": {
|
"tooManyRequestsTryAgainInMinutes": {
|
||||||
"one": "Zu viele Anfragen (Rate begrenzt) – versuchen Sie es in {} Minute erneut",
|
"one": "Zu viele Anfragen (Rate begrenzt) – versuche es in {} Minute erneut",
|
||||||
"other": "Zu viele Anfragen (Rate begrenzt) – versuchen Sie es in {} Minuten erneut"
|
"other": "Zu viele Anfragen (Rate begrenzt) – versuche es in {} Minuten erneut"
|
||||||
},
|
},
|
||||||
"bgUpdateGotErrorRetryInMinutes": {
|
"bgUpdateGotErrorRetryInMinutes": {
|
||||||
"one": "Bei der Aktualisierungsprüfung im Hintergrund wurde ein {} festgestellt, eine erneute Prüfung wird in {} Minute geplant",
|
"one": "Bei der Aktualisierungsprüfung im Hintergrund wurde ein {} festgestellt, eine erneute Prüfung wird in {} Minute geplant",
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"invalidURLForSource": "URL de la aplicación {} no válida",
|
"invalidURLForSource": "URL de la aplicación {} no es válida",
|
||||||
"noReleaseFound": "No se ha podido encontrar una versión válida",
|
"noReleaseFound": "No se ha podido encontrar una versión válida",
|
||||||
"noVersionFound": "No se ha podido determinar la versión de la publicación",
|
"noVersionFound": "No se ha podido determinar la versión",
|
||||||
"urlMatchesNoSource": "La URL no coincide con ninguna fuente conocida",
|
"urlMatchesNoSource": "La URL no coincide con ninguna fuente conocida",
|
||||||
"cantInstallOlderVersion": "No se puede instalar una versión previa de la aplicación",
|
"cantInstallOlderVersion": "No se puede instalar una versión previa de la aplicación",
|
||||||
"appIdMismatch": "La ID del paquete descargado no coincide con la ID de la aplicación instalada",
|
"appIdMismatch": "La ID del paquete descargado no coincide con la ID de la aplicación instalada",
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
"unexpectedError": "Error inesperado",
|
"unexpectedError": "Error inesperado",
|
||||||
"ok": "OK",
|
"ok": "OK",
|
||||||
"and": "y",
|
"and": "y",
|
||||||
"githubPATLabel": "Token GitHub de acceso personal\n(reduce tiempos de espera)",
|
"githubPATLabel": "Token de acceso personal a GitHub\n(reduce tiempos de espera)",
|
||||||
"includePrereleases": "Incluir versiones preliminares",
|
"includePrereleases": "Incluir versiones preliminares",
|
||||||
"fallbackToOlderReleases": "Retroceder a versiones previas",
|
"fallbackToOlderReleases": "Retroceder a versiones previas",
|
||||||
"filterReleaseTitlesByRegEx": "Filtrar por título de versión",
|
"filterReleaseTitlesByRegEx": "Filtrar por título de versión",
|
||||||
@@ -22,20 +22,20 @@
|
|||||||
"requiredInBrackets": "(Requerido)",
|
"requiredInBrackets": "(Requerido)",
|
||||||
"dropdownNoOptsError": "ERROR: EL DESPLEGABLE DEBE TENER AL MENOS UNA OPCIÓN",
|
"dropdownNoOptsError": "ERROR: EL DESPLEGABLE DEBE TENER AL MENOS UNA OPCIÓN",
|
||||||
"colour": "Color",
|
"colour": "Color",
|
||||||
"githubStarredRepos": "Repositorios favoritos GitHub",
|
"githubStarredRepos": "Repositorios favoritos en GitHub",
|
||||||
"uname": "Nombre de usuario",
|
"uname": "Nombre de usuario",
|
||||||
"wrongArgNum": "Número de argumentos provistos inválido",
|
"wrongArgNum": "Número de argumentos provistos inválido",
|
||||||
"xIsTrackOnly": "{} es de 'Sólo seguimiento'",
|
"xIsTrackOnly": "{} es de 'sólo seguimiento'",
|
||||||
"source": "Origen",
|
"source": "Origen",
|
||||||
"app": "Aplicación",
|
"app": "Aplicación",
|
||||||
"appsFromSourceAreTrackOnly": "Las aplicaciones de este origen son de 'solo seguimiento'.",
|
"appsFromSourceAreTrackOnly": "Las aplicaciones de este origen son de 'solo seguimiento'.",
|
||||||
"youPickedTrackOnly": "Debe seleccionar la opción de 'solo seguimiento'.",
|
"youPickedTrackOnly": "Debe seleccionar la opción de 'solo seguimiento'.",
|
||||||
"trackOnlyAppDescription": "Se hará el seguimiento de actualizaciones para la aplicación, pero Obtainium no será capaz de descargarla o actalizarla.",
|
"trackOnlyAppDescription": "Se hará el seguimiento de actualizaciones para la aplicación, pero Obtainium no será capaz de descargar o actualizarla.",
|
||||||
"cancelled": "Cancelado",
|
"cancelled": "Cancelado",
|
||||||
"appAlreadyAdded": "Aplicación ya añadida",
|
"appAlreadyAdded": "Aplicación añadida anteriormente",
|
||||||
"alreadyUpToDateQuestion": "¿Aplicación ya actualizada?",
|
"alreadyUpToDateQuestion": "¿Aplicación actualizada previamente?",
|
||||||
"addApp": "Añadir Aplicación",
|
"addApp": "Añadir Aplicación",
|
||||||
"appSourceURL": "URL de Origen de la Aplicación",
|
"appSourceURL": "URL de origen de la aplicación",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"add": "Añadir",
|
"add": "Añadir",
|
||||||
"searchSomeSourcesLabel": "Buscar (solo algunas fuentes)",
|
"searchSomeSourcesLabel": "Buscar (solo algunas fuentes)",
|
||||||
@@ -71,11 +71,11 @@
|
|||||||
"pinToTop": "Fijar arriba",
|
"pinToTop": "Fijar arriba",
|
||||||
"unpinFromTop": "Desfijar de arriba",
|
"unpinFromTop": "Desfijar de arriba",
|
||||||
"resetInstallStatusForSelectedAppsQuestion": "¿Restuarar estado de instalación para las aplicaciones seleccionadas?",
|
"resetInstallStatusForSelectedAppsQuestion": "¿Restuarar estado de instalación para las aplicaciones seleccionadas?",
|
||||||
"installStatusOfXWillBeResetExplanation": "El estado de instalación de las aplicaciones seleccionadas será restaurado.\n\nEsto puede ser de útil cuando la versión de la aplicación mostrada en Obtainium es incorrecta por actualizaciones fallidas u otros motivos.",
|
"installStatusOfXWillBeResetExplanation": "Se restaurará el estado de instalación de las aplicaciones seleccionadas.\n\nEsto puede ser de útil cuando la versión de la aplicación mostrada en Obtainium es incorrecta por actualizaciones fallidas u otros motivos.",
|
||||||
"customLinkMessage": "Estos enlaces funcionan en dispositivos con Obtainium instalado",
|
"customLinkMessage": "Estos enlaces funcionan en dispositivos con Obtainium instalado",
|
||||||
"shareAppConfigLinks": "Compartir la configuración de la aplicación como enlace HTML",
|
"shareAppConfigLinks": "Compartir la configuración de la aplicación como enlace HTML",
|
||||||
"shareSelectedAppURLs": "Compartir URLs de las aplicaciones seleccionadas",
|
"shareSelectedAppURLs": "Compartir URLs de las aplicaciones seleccionadas",
|
||||||
"resetInstallStatus": "Restaurar Estado de Instalación",
|
"resetInstallStatus": "Restaurar estado de instalación",
|
||||||
"more": "Más",
|
"more": "Más",
|
||||||
"removeOutdatedFilter": "Elimiar filtro de aplicaciones desactualizado",
|
"removeOutdatedFilter": "Elimiar filtro de aplicaciones desactualizado",
|
||||||
"showOutdatedOnly": "Mostrar solo aplicaciones desactualizadas",
|
"showOutdatedOnly": "Mostrar solo aplicaciones desactualizadas",
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
"neverManualOnly": "Nunca, solo manual",
|
"neverManualOnly": "Nunca, solo manual",
|
||||||
"appearance": "Apariencia",
|
"appearance": "Apariencia",
|
||||||
"showWebInAppView": "Mostrar vista de la web de origen",
|
"showWebInAppView": "Mostrar vista de la web de origen",
|
||||||
"pinUpdates": "Fijar Actualizaciones al principio",
|
"pinUpdates": "Fijar actualizaciones al principio",
|
||||||
"updates": "Actualizaciones",
|
"updates": "Actualizaciones",
|
||||||
"sourceSpecific": "Fuente Específica",
|
"sourceSpecific": "Fuente Específica",
|
||||||
"appSource": "Obtainium en GitHub",
|
"appSource": "Obtainium en GitHub",
|
||||||
@@ -140,77 +140,77 @@
|
|||||||
"warning": "Aviso",
|
"warning": "Aviso",
|
||||||
"sourceIsXButPackageFromYPrompt": "La fuente de la aplicación es '{}' pero el paquete de la actualización viene de '{}'. ¿Desea continuar?",
|
"sourceIsXButPackageFromYPrompt": "La fuente de la aplicación es '{}' pero el paquete de la actualización viene de '{}'. ¿Desea continuar?",
|
||||||
"updatesAvailable": "Actualizaciones Disponibles",
|
"updatesAvailable": "Actualizaciones Disponibles",
|
||||||
"updatesAvailableNotifDescription": "Notifica al usuario de que hay actualizaciones para una o más aplicaciones monitorizadas por Obtainium",
|
"updatesAvailableNotifDescription": "Notifica al usuario de que hay actualizaciones para una o más aplicaciones monitoreadas por Obtainium",
|
||||||
"noNewUpdates": "No hay nuevas actualizaciones.",
|
"noNewUpdates": "No hay nuevas actualizaciones.",
|
||||||
"xHasAnUpdate": "{} tiene una actualización.",
|
"xHasAnUpdate": "{} tiene una actualización.",
|
||||||
"appsUpdated": "Aplicaciones Actualizadas",
|
"appsUpdated": "Aplicaciones actualizadas",
|
||||||
"appsUpdatedNotifDescription": "Notifica al usuario de que una o más aplicaciones han sido actualizadas en segundo plano",
|
"appsUpdatedNotifDescription": "Notifica al usuario de que una o más aplicaciones han sido actualizadas en segundo plano",
|
||||||
"xWasUpdatedToY": "{} ha sido actualizada a {}.",
|
"xWasUpdatedToY": "{} ha sido actualizada a {}.",
|
||||||
"errorCheckingUpdates": "Error Buscando Actualizaciones",
|
"errorCheckingUpdates": "Error buscando ectualizaciones",
|
||||||
"errorCheckingUpdatesNotifDescription": "Una notificación que muestra cuándo la comprobación de actualizaciones en segundo plano falla",
|
"errorCheckingUpdatesNotifDescription": "Una notificación que muestra cuándo la comprobación de actualizaciones en segundo plano falla",
|
||||||
"appsRemoved": "Aplicaciones Eliminadas",
|
"appsRemoved": "Aplicaciones eliminadas",
|
||||||
"appsRemovedNotifDescription": "Notifica al usuario que una o más aplicaciones fueron eliminadas por problemas al cargarlas",
|
"appsRemovedNotifDescription": "Notifica al usuario que una o más aplicaciones fueron eliminadas por problemas al cargarlas",
|
||||||
"xWasRemovedDueToErrorY": "{} ha sido eliminada por: {}",
|
"xWasRemovedDueToErrorY": "{} ha sido eliminada por: {}",
|
||||||
"completeAppInstallation": "Instalación Completa de la Aplicación",
|
"completeAppInstallation": "Instalación completa de la aplicación",
|
||||||
"obtainiumMustBeOpenToInstallApps": "Obtainium debe estar abierto para instalar aplicaciones",
|
"obtainiumMustBeOpenToInstallApps": "Obtainium debe estar abierto para instalar aplicaciones",
|
||||||
"completeAppInstallationNotifDescription": "Pide al usuario volver a Obtainium para terminar de instalar una aplicación",
|
"completeAppInstallationNotifDescription": "Pide al usuario volver a Obtainium para terminar de instalar una aplicación",
|
||||||
"checkingForUpdates": "Buscando Actualizaciones",
|
"checkingForUpdates": "Buscando actualizaciones...",
|
||||||
"checkingForUpdatesNotifDescription": "Notificación temporal que aparece al buscar actualizaciones",
|
"checkingForUpdatesNotifDescription": "Notificación temporal que aparece al buscar actualizaciones",
|
||||||
"pleaseAllowInstallPerm": "Por favor, permita que Obtainium instale aplicaciones",
|
"pleaseAllowInstallPerm": "Por favor, permita que Obtainium instale aplicaciones",
|
||||||
"trackOnly": "Solo Seguimiento",
|
"trackOnly": "Solo para seguimiento",
|
||||||
"errorWithHttpStatusCode": "Error {}",
|
"errorWithHttpStatusCode": "Error {}",
|
||||||
"versionCorrectionDisabled": "Corrección de versiones desactivada (el plugin parece no funcionar)",
|
"versionCorrectionDisabled": "Corrección de versiones desactivada (el plugin parece no funcionar)",
|
||||||
"unknown": "Desconocido",
|
"unknown": "Desconocido",
|
||||||
"none": "Ninguno",
|
"none": "Ninguno",
|
||||||
"never": "Nunca",
|
"never": "Nunca",
|
||||||
"latestVersionX": "Última Versión: {}",
|
"latestVersionX": "Última versión: {}",
|
||||||
"installedVersionX": "Versión Instalada: {}",
|
"installedVersionX": "Versión instalada: {}",
|
||||||
"lastUpdateCheckX": "Última Comprobación: {}",
|
"lastUpdateCheckX": "Última comprobación: {}",
|
||||||
"remove": "Eliminar",
|
"remove": "Eliminar",
|
||||||
"yesMarkUpdated": "Sí, Marcar como Actualizada",
|
"yesMarkUpdated": "Sí, marcar como actualizada",
|
||||||
"fdroid": "Repositorio oficial F-Droid",
|
"fdroid": "Repositorio oficial F-Droid",
|
||||||
"appIdOrName": "ID o Nombre de la Aplicación",
|
"appIdOrName": "ID o Nombre de la Aplicación",
|
||||||
"appId": "ID de la Aplicación",
|
"appId": "ID de la Aplicación",
|
||||||
"appWithIdOrNameNotFound": "No se han encontrado aplicaciones con esa ID o nombre",
|
"appWithIdOrNameNotFound": "No se han encontrado aplicaciones con esa ID o nombre",
|
||||||
"reposHaveMultipleApps": "Los repositorios pueden contener varias aplicaciones",
|
"reposHaveMultipleApps": "Los repositorios pueden contener varias aplicaciones",
|
||||||
"fdroidThirdPartyRepo": "Rpositorios de terceros F-Droid",
|
"fdroidThirdPartyRepo": "Repositorio de tercera parte F-Droid",
|
||||||
"steamMobile": "Móvil de vapor",
|
"steamMobile": "Móvil de vapor",
|
||||||
"steamChat": "Chat de vapor",
|
"steamChat": "Chat de vapor",
|
||||||
"install": "Instalar",
|
"install": "Instalar",
|
||||||
"markInstalled": "Marcar como Instalada",
|
"markInstalled": "Marcar como instalada",
|
||||||
"update": "Actualizar",
|
"update": "Actualizar",
|
||||||
"markUpdated": "Marcar como Actualizada",
|
"markUpdated": "Marcar como actualizada",
|
||||||
"additionalOptions": "Opciones Adicionales",
|
"additionalOptions": "Opciones adicionales",
|
||||||
"disableVersionDetection": "Descativar Detección de Versiones",
|
"disableVersionDetection": "Desactivar la detección de versiones",
|
||||||
"noVersionDetectionExplanation": "Esta opción solo se debe usar en aplicaciones en las que la deteción de versiones pueda no funcionar correctamente.",
|
"noVersionDetectionExplanation": "Esta opción solo se debe usar en aplicaciones en las que la deteción de versiones pueda que no funcionar correctamente.",
|
||||||
"downloadingX": "Descargando {}",
|
"downloadingX": "Descargando {}",
|
||||||
"downloadNotifDescription": "Notifica al usuario del progreso de descarga de una aplicación",
|
"downloadNotifDescription": "Notifica al usuario del progreso de descarga de una aplicación",
|
||||||
"noAPKFound": "APK no encontrada",
|
"noAPKFound": "No se encontró el paquete de instalación APK",
|
||||||
"noVersionDetection": "Sin detección de versiones",
|
"noVersionDetection": "Sin detección de versiones",
|
||||||
"categorize": "Catogorizar",
|
"categorize": "Catogorizar",
|
||||||
"categories": "Categorías",
|
"categories": "Categorías",
|
||||||
"category": "Categoría",
|
"category": "Categoría",
|
||||||
"noCategory": "Sin Categoría",
|
"noCategory": "Sin categoría",
|
||||||
"noCategories": "Sin Categorías",
|
"noCategories": "Sin categorías",
|
||||||
"deleteCategoriesQuestion": "¿Eliminar Categorías?",
|
"deleteCategoriesQuestion": "¿Eliminar categorías?",
|
||||||
"categoryDeleteWarning": "Todas las aplicaciones en las categorías eliminadas serán marcadas como 'Sin Categoría'.",
|
"categoryDeleteWarning": "Todas las aplicaciones en las categorías eliminadas serán marcadas como 'Sin categoría'.",
|
||||||
"addCategory": "Añadir Categoría",
|
"addCategory": "Añadir categoría",
|
||||||
"label": "Nombre",
|
"label": "Nombre",
|
||||||
"language": "Idioma",
|
"language": "Idioma",
|
||||||
"copiedToClipboard": "Copiado al Portapapeles",
|
"copiedToClipboard": "Copiado al portapapeles",
|
||||||
"storagePermissionDenied": "Permiso de Almacenamiento rechazado",
|
"storagePermissionDenied": "Permiso de almacenamiento rechazado",
|
||||||
"selectedCategorizeWarning": "Esto reemplazará cualquier ajuste de categoría para las aplicaciones seleccionadas.",
|
"selectedCategorizeWarning": "Esto reemplazará cualquier ajuste de categoría para las aplicaciones seleccionadas.",
|
||||||
"filterAPKsByRegEx": "Filtrar por APKs",
|
"filterAPKsByRegEx": "Filtrar por APKs",
|
||||||
"removeFromObtainium": "Eliminar de Obtainium",
|
"removeFromObtainium": "Eliminar de Obtainium",
|
||||||
"uninstallFromDevice": "Desinstalar del Dispositivo",
|
"uninstallFromDevice": "Desinstalar del dispositivo",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Solo funciona para aplicaciones con la detección de versiones desactivada.",
|
"onlyWorksWithNonVersionDetectApps": "Solo funciona para aplicaciones con la detección de versiones desactivada.",
|
||||||
"releaseDateAsVersion": "Por fecha de publicación",
|
"releaseDateAsVersion": "Por fecha de publicación",
|
||||||
"releaseDateAsVersionExplanation": "Esta opción solo se debería usar con aplicaciones en las que la detección de versiones no funciona pero hay disponible una fecha de publicación.",
|
"releaseDateAsVersionExplanation": "Esta opción solo se debería usar con aplicaciones en las que la detección de versiones no funciona pero hay disponible una fecha de publicación.",
|
||||||
"changes": "Cambios",
|
"changes": "Cambios",
|
||||||
"releaseDate": "Fecha de Publicación",
|
"releaseDate": "Fecha de publicación",
|
||||||
"importFromURLsInFile": "Importar URLs desde archivo (como OPML)",
|
"importFromURLsInFile": "Importar URLs desde archivo (como OPML)",
|
||||||
"versionDetectionExplanation": "Conciliar la cadena de versión con la versión detectada desde el sistema operativo",
|
"versionDetectionExplanation": "Conciliar la cadena de versión con la versión detectada desde el sistema operativo",
|
||||||
"versionDetection": "Detección de Versiones",
|
"versionDetection": "Detección de versiones",
|
||||||
"standardVersionDetection": "Por versión",
|
"standardVersionDetection": "Por versión",
|
||||||
"groupByCategory": "Agrupar por categoría",
|
"groupByCategory": "Agrupar por categoría",
|
||||||
"autoApkFilterByArch": "Filtrar APKs por arquitectura del procesador (si es posible)",
|
"autoApkFilterByArch": "Filtrar APKs por arquitectura del procesador (si es posible)",
|
||||||
@@ -219,25 +219,25 @@
|
|||||||
"dontShowTrackOnlyWarnings": "No mostrar avisos sobre apps en 'solo seguimiento'",
|
"dontShowTrackOnlyWarnings": "No mostrar avisos sobre apps en 'solo seguimiento'",
|
||||||
"dontShowAPKOriginWarnings": "No mostrar avisos sobre las fuentes de las APKs",
|
"dontShowAPKOriginWarnings": "No mostrar avisos sobre las fuentes de las APKs",
|
||||||
"moveNonInstalledAppsToBottom": "Mover Apps no instaladas al final",
|
"moveNonInstalledAppsToBottom": "Mover Apps no instaladas al final",
|
||||||
"gitlabPATLabel": "Token GitLab de acceso personal\n(habilita la búsqueda y mejor detección de APKs)",
|
"gitlabPATLabel": "Token de acceso personal a GitLab\n(habilita la búsqueda y mejor detección de APKs)",
|
||||||
"about": "Acerca",
|
"about": "Acerca",
|
||||||
"requiresCredentialsInSettings": "{}: Esto requiere credenciales adicionales (en ajustes)",
|
"requiresCredentialsInSettings": "{}: Esto requiere credenciales adicionales (en ajustes)",
|
||||||
"checkOnStart": "Comprobar actualizaciones al inicio",
|
"checkOnStart": "Comprobar actualizaciones al inicio",
|
||||||
"tryInferAppIdFromCode": "Intentar deducir la ID de la app por el código fuente",
|
"tryInferAppIdFromCode": "Intentar deducir la ID de la app por el código fuente",
|
||||||
"removeOnExternalUninstall": "Auto eliminar apps desinstaladas externamente",
|
"removeOnExternalUninstall": "Auto eliminar apps desinstaladas externamente",
|
||||||
"pickHighestVersionCode": "Auto selección versión superior del código APK",
|
"pickHighestVersionCode": "Auto selección de versión superior del paquete APK",
|
||||||
"checkUpdateOnDetailPage": "Comprobar actualizaciones al abrir detalles de la app",
|
"checkUpdateOnDetailPage": "Comprobar actualizaciones al abrir detalles de la app",
|
||||||
"disablePageTransitions": "Deshabilitar animaciones de transición",
|
"disablePageTransitions": "Deshabilitar animaciones de transición",
|
||||||
"reversePageTransitions": "Invertir animaciones de transición",
|
"reversePageTransitions": "Invertir animaciones de transición",
|
||||||
"minStarCount": "Número Mínimo de Estrellas",
|
"minStarCount": "Número Mínimo de Estrellas",
|
||||||
"addInfoBelow": "Añadir esta información debajo.",
|
"addInfoBelow": "Añadir esta información debajo.",
|
||||||
"addInfoInSettings": "Puede añadir esta información en Ajustes.",
|
"addInfoInSettings": "Puede añadir esta información en Ajustes.",
|
||||||
"githubSourceNote": "La limitación de velocidad de GitHub puede evitarse con una clave API.",
|
"githubSourceNote": "La limitación de velocidad de GitHub puede evitarse con un 'token de acceso personal'.",
|
||||||
"gitlabSourceNote": "La extracción de APK de GitLab podría no funcionar sin una clave API.",
|
"gitlabSourceNote": "La extracción de APK de GitLab podría no funcionar sin un 'token de acceso personal'.",
|
||||||
"sortByLastLinkSegment": "Ordenar sólo por el último segmento del enlace",
|
"sortByLastLinkSegment": "Ordenar sólo por el último segmento del enlace",
|
||||||
"filterReleaseNotesByRegEx": "Filtrar por notas de versión (release notes)",
|
"filterReleaseNotesByRegEx": "Filtrar por notas de versión (release notes)",
|
||||||
"customLinkFilterRegex": "Filtro personalizado de Enlace APK (por defecto '.apk$')",
|
"customLinkFilterRegex": "Filtro personalizado de enlace APK (por defecto '.apk$')",
|
||||||
"appsPossiblyUpdated": "Actualización de Apps intentada",
|
"appsPossiblyUpdated": "Actualización de apps intentada",
|
||||||
"appsPossiblyUpdatedNotifDescription": "Notifica al usuario que las actualizaciones en segundo plano podrían haberse realizado para una o más aplicaciones",
|
"appsPossiblyUpdatedNotifDescription": "Notifica al usuario que las actualizaciones en segundo plano podrían haberse realizado para una o más aplicaciones",
|
||||||
"xWasPossiblyUpdatedToY": "{} podría estar actualizada a {}.",
|
"xWasPossiblyUpdatedToY": "{} podría estar actualizada a {}.",
|
||||||
"enableBackgroundUpdates": "Habilitar actualizaciones en segundo plano",
|
"enableBackgroundUpdates": "Habilitar actualizaciones en segundo plano",
|
||||||
@@ -250,16 +250,16 @@
|
|||||||
"intermediateLink": "Enlace intermedio",
|
"intermediateLink": "Enlace intermedio",
|
||||||
"exemptFromBackgroundUpdates": "Exenta de actualizciones en segundo plano (si están habilitadas)",
|
"exemptFromBackgroundUpdates": "Exenta de actualizciones en segundo plano (si están habilitadas)",
|
||||||
"bgUpdatesOnWiFiOnly": "Deshabilitar las actualizaciones en segundo plano sin WiFi",
|
"bgUpdatesOnWiFiOnly": "Deshabilitar las actualizaciones en segundo plano sin WiFi",
|
||||||
"autoSelectHighestVersionCode": "Auto Selección de la versionCode APK superior",
|
"autoSelectHighestVersionCode": "Auto selección del paquete APK con versión más reciente",
|
||||||
"versionExtractionRegEx": "Versión de extracción regex",
|
"versionExtractionRegEx": "Versión de extracción regex",
|
||||||
"matchGroupToUse": "Grupo a usar para versión de extracción regex",
|
"matchGroupToUse": "Grupo a usar para versión de extracción regex",
|
||||||
"highlightTouchTargets": "Resaltar objetivos menos obvios",
|
"highlightTouchTargets": "Resaltar objetivos menos obvios",
|
||||||
"pickExportDir": "Directorio para Exportar",
|
"pickExportDir": "Directorio para exportar",
|
||||||
"autoExportOnChanges": "Auto Exportar cuando haya cambios",
|
"autoExportOnChanges": "Auto exportar cuando haya cambios",
|
||||||
"includeSettings": "Incluir ajustes",
|
"includeSettings": "Incluir ajustes",
|
||||||
"filterVersionsByRegEx": "Filtrar por Versiones",
|
"filterVersionsByRegEx": "Filtrar por versiones",
|
||||||
"trySelectingSuggestedVersionCode": "Pruebe seleccionando la versionCode APK sugerida",
|
"trySelectingSuggestedVersionCode": "Pruebe seleccionando la versión del paquete APK sugerida",
|
||||||
"dontSortReleasesList": "Mantener el order de publicación desde API",
|
"dontSortReleasesList": "Mantener el order de publicación de la fuente original",
|
||||||
"reverseSort": "Orden inverso",
|
"reverseSort": "Orden inverso",
|
||||||
"takeFirstLink": "Usar primer enlace",
|
"takeFirstLink": "Usar primer enlace",
|
||||||
"skipSort": "Omitir orden",
|
"skipSort": "Omitir orden",
|
||||||
@@ -284,10 +284,10 @@
|
|||||||
"installMethod": "Método de instalación",
|
"installMethod": "Método de instalación",
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"root": "Raíz",
|
"root": "Raíz",
|
||||||
"shizukuBinderNotFound": "Shizuku no está operativo",
|
"shizukuBinderNotFound": "Shizuku no funciona",
|
||||||
"useSystemFont": "Usar la fuente del sistema",
|
"useSystemFont": "Usar la fuente de impresión del sistema",
|
||||||
"systemFontError": "Error al cargar la fuente del sistema: {}",
|
"systemFontError": "Error al cargar la fuente de impresión del sistema: {}",
|
||||||
"useVersionCodeAsOSVersion": "Usar el código de versión de la aplicación como versión detectada por el sistema operativo",
|
"useVersionCodeAsOSVersion": "Usar la versión de la aplicación como versión detectada por el sistema operativo",
|
||||||
"requestHeader": "Encabezado de solicitud",
|
"requestHeader": "Encabezado de solicitud",
|
||||||
"useLatestAssetDateAsReleaseDate": "Usar la última carga de recursos como fecha de lanzamiento",
|
"useLatestAssetDateAsReleaseDate": "Usar la última carga de recursos como fecha de lanzamiento",
|
||||||
"defaultPseudoVersioningMethod": "Método de pseudoversionado predeterminado",
|
"defaultPseudoVersioningMethod": "Método de pseudoversionado predeterminado",
|
||||||
@@ -296,7 +296,7 @@
|
|||||||
"directAPKLink": "Enlace APK directo",
|
"directAPKLink": "Enlace APK directo",
|
||||||
"pseudoVersionInUse": "Se está utilizando una pseudoversión",
|
"pseudoVersionInUse": "Se está utilizando una pseudoversión",
|
||||||
"installed": "Instalado",
|
"installed": "Instalado",
|
||||||
"latest": "El último",
|
"latest": "Versión más reciente",
|
||||||
"invertRegEx": "Invertir expresión regular",
|
"invertRegEx": "Invertir expresión regular",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "¿Eliminar Aplicación?",
|
"one": "¿Eliminar Aplicación?",
|
||||||
|
@@ -168,14 +168,14 @@
|
|||||||
"lastUpdateCheckX": "最終アップデート確認: {}",
|
"lastUpdateCheckX": "最終アップデート確認: {}",
|
||||||
"remove": "削除",
|
"remove": "削除",
|
||||||
"yesMarkUpdated": "はい、アップデート済みとしてマークします",
|
"yesMarkUpdated": "はい、アップデート済みとしてマークします",
|
||||||
"fdroid": "F-ドロイドオフィシャル",
|
"fdroid": "F-Droid公式",
|
||||||
"appIdOrName": "アプリのIDまたは名前",
|
"appIdOrName": "アプリのIDまたは名前",
|
||||||
"appId": "アプリID",
|
"appId": "アプリID",
|
||||||
"appWithIdOrNameNotFound": "そのIDや名前を持つアプリは見つかりませんでした",
|
"appWithIdOrNameNotFound": "そのIDや名前を持つアプリは見つかりませんでした",
|
||||||
"reposHaveMultipleApps": "リポジトリには複数のアプリが含まれることがあります",
|
"reposHaveMultipleApps": "リポジトリには複数のアプリが含まれることがあります",
|
||||||
"fdroidThirdPartyRepo": "F-Droid サードパーティリポジトリ",
|
"fdroidThirdPartyRepo": "F-Droid サードパーティリポジトリ",
|
||||||
"steamMobile": "スチームモバイル",
|
"steamMobile": "Steamモバイル",
|
||||||
"steamChat": "スチームチャット",
|
"steamChat": "Steamチャット",
|
||||||
"install": "インストール",
|
"install": "インストール",
|
||||||
"markInstalled": "インストール済みとしてマークする",
|
"markInstalled": "インストール済みとしてマークする",
|
||||||
"update": "アップデート",
|
"update": "アップデート",
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
"changes": "変更点",
|
"changes": "変更点",
|
||||||
"releaseDate": "リリース日",
|
"releaseDate": "リリース日",
|
||||||
"importFromURLsInFile": "ファイル(OPMLなど)内のURLからインポート",
|
"importFromURLsInFile": "ファイル(OPMLなど)内のURLからインポート",
|
||||||
"versionDetectionExplanation": "バージョン文字列とOSから検出されたバージョンを一致させます",
|
"versionDetectionExplanation": "バージョン文字列とOSから検出されたバージョンを照合する",
|
||||||
"versionDetection": "バージョン検出",
|
"versionDetection": "バージョン検出",
|
||||||
"standardVersionDetection": "標準のバージョン検出",
|
"standardVersionDetection": "標準のバージョン検出",
|
||||||
"groupByCategory": "カテゴリ別にグループ化する",
|
"groupByCategory": "カテゴリ別にグループ化する",
|
||||||
@@ -283,19 +283,19 @@
|
|||||||
"parallelDownloads": "並行ダウンロードを許可する",
|
"parallelDownloads": "並行ダウンロードを許可する",
|
||||||
"installMethod": "インストール方法",
|
"installMethod": "インストール方法",
|
||||||
"normal": "通常",
|
"normal": "通常",
|
||||||
"root": "根",
|
"root": "Root",
|
||||||
"shizukuBinderNotFound": "Shizukuが起動していません",
|
"shizukuBinderNotFound": "Shizukuが起動していません",
|
||||||
"useSystemFont": "システムフォントを使用する",
|
"useSystemFont": "システムフォントを使用する",
|
||||||
"systemFontError": "システムフォントの読み込みエラー: {}",
|
"systemFontError": "システムフォントの読み込みエラー: {}",
|
||||||
"useVersionCodeAsOSVersion": "アプリの versionCode を OS で検出されたバージョンとして使用する",
|
"useVersionCodeAsOSVersion": "アプリのバージョンコードをOSで検出されたバージョンとして使用する",
|
||||||
"requestHeader": "リクエストヘッダー",
|
"requestHeader": "リクエストヘッダー",
|
||||||
"useLatestAssetDateAsReleaseDate": "最新のアセットアップロードをリリース日として使用",
|
"useLatestAssetDateAsReleaseDate": "最新のアセットアップロードをリリース日として使用する",
|
||||||
"defaultPseudoVersioningMethod": "デフォルトの疑似バージョン管理方法",
|
"defaultPseudoVersioningMethod": "デフォルトの疑似バージョン管理方法",
|
||||||
"partialAPKHash": "部分的なAPKハッシュ",
|
"partialAPKHash": "部分的なAPKのハッシュ",
|
||||||
"APKLinkHash": "APKリンクハッシュ",
|
"APKLinkHash": "APKリンクのハッシュ",
|
||||||
"directAPKLink": "APK ダイレクトリンク",
|
"directAPKLink": "APKのダイレクトリンク",
|
||||||
"pseudoVersionInUse": "疑似バージョンが使用されています",
|
"pseudoVersionInUse": "疑似バージョンが使用されています",
|
||||||
"installed": "インストールされました",
|
"installed": "インストール済み",
|
||||||
"latest": "最新",
|
"latest": "最新",
|
||||||
"invertRegEx": "正規表現を反転",
|
"invertRegEx": "正規表現を反転",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
|
@@ -157,7 +157,7 @@
|
|||||||
"checkingForUpdates": "Đang kiểm tra cập nhật",
|
"checkingForUpdates": "Đang kiểm tra cập nhật",
|
||||||
"checkingForUpdatesNotifDescription": "Thông báo tạm thời xuất hiện khi kiểm tra bản cập nhật",
|
"checkingForUpdatesNotifDescription": "Thông báo tạm thời xuất hiện khi kiểm tra bản cập nhật",
|
||||||
"pleaseAllowInstallPerm": "Vui lòng cho phép Obtainium cài đặt Ứng dụng",
|
"pleaseAllowInstallPerm": "Vui lòng cho phép Obtainium cài đặt Ứng dụng",
|
||||||
"trackOnly": "Chỉ-Theo dõi",
|
"trackOnly": "Chỉ theo dõi",
|
||||||
"errorWithHttpStatusCode": "Lỗi {}",
|
"errorWithHttpStatusCode": "Lỗi {}",
|
||||||
"versionCorrectionDisabled": "Tính năng sửa phiên bản bị vô hiệu hóa (plugin dường như không hoạt động)",
|
"versionCorrectionDisabled": "Tính năng sửa phiên bản bị vô hiệu hóa (plugin dường như không hoạt động)",
|
||||||
"unknown": "Không xác định",
|
"unknown": "Không xác định",
|
||||||
@@ -216,7 +216,7 @@
|
|||||||
"autoApkFilterByArch": "Cố gắng lọc APK theo kiến trúc CPU nếu có thể",
|
"autoApkFilterByArch": "Cố gắng lọc APK theo kiến trúc CPU nếu có thể",
|
||||||
"overrideSource": "Ghi đè nguồn",
|
"overrideSource": "Ghi đè nguồn",
|
||||||
"dontShowAgain": "Đừng hiển thị thông tin này nữa",
|
"dontShowAgain": "Đừng hiển thị thông tin này nữa",
|
||||||
"dontShowTrackOnlyWarnings": "Không hiển thị cảnh báo 'Chỉ-Theo dõi'",
|
"dontShowTrackOnlyWarnings": "Không hiển thị cảnh báo 'Chỉ theo dõi'",
|
||||||
"dontShowAPKOriginWarnings": "Không hiển thị cảnh báo nguồn gốc APK",
|
"dontShowAPKOriginWarnings": "Không hiển thị cảnh báo nguồn gốc APK",
|
||||||
"moveNonInstalledAppsToBottom": "Chuyển Ứng dụng chưa được cài đặt xuống cuối danh sách",
|
"moveNonInstalledAppsToBottom": "Chuyển Ứng dụng chưa được cài đặt xuống cuối danh sách",
|
||||||
"gitlabPATLabel": "GitLab Token\n(Cho phép tìm kiếm và lọc APK tốt hơn)",
|
"gitlabPATLabel": "GitLab Token\n(Cho phép tìm kiếm và lọc APK tốt hơn)",
|
||||||
@@ -283,7 +283,7 @@
|
|||||||
"parallelDownloads": "Cho phép tải đa luồng",
|
"parallelDownloads": "Cho phép tải đa luồng",
|
||||||
"installMethod": "Phương thức cài đặt",
|
"installMethod": "Phương thức cài đặt",
|
||||||
"normal": "Mặc định",
|
"normal": "Mặc định",
|
||||||
"root": "Nguồn gốc",
|
"root": "Root",
|
||||||
"shizukuBinderNotFound": "Shizuku chưa khởi động",
|
"shizukuBinderNotFound": "Shizuku chưa khởi động",
|
||||||
"useSystemFont": "Sử dụng phông chữ hệ thống",
|
"useSystemFont": "Sử dụng phông chữ hệ thống",
|
||||||
"systemFontError": "Lỗi tải phông chữ hệ thống: {}",
|
"systemFontError": "Lỗi tải phông chữ hệ thống: {}",
|
||||||
@@ -296,7 +296,7 @@
|
|||||||
"directAPKLink": "Liên kết APK trực tiếp",
|
"directAPKLink": "Liên kết APK trực tiếp",
|
||||||
"pseudoVersionInUse": "Phiên bản giả đang được sử dụng",
|
"pseudoVersionInUse": "Phiên bản giả đang được sử dụng",
|
||||||
"installed": "Cài đặt",
|
"installed": "Cài đặt",
|
||||||
"latest": "Muộn nhất",
|
"latest": "Mới nhất",
|
||||||
"invertRegEx": "Đảo ngược biểu thức chính quy",
|
"invertRegEx": "Đảo ngược biểu thức chính quy",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Gỡ ứng dụng?",
|
"one": "Gỡ ứng dụng?",
|
||||||
|
@@ -283,7 +283,7 @@
|
|||||||
"parallelDownloads": "启用并行下载",
|
"parallelDownloads": "启用并行下载",
|
||||||
"installMethod": "安装方式",
|
"installMethod": "安装方式",
|
||||||
"normal": "常规",
|
"normal": "常规",
|
||||||
"root": "根",
|
"root": "root",
|
||||||
"shizukuBinderNotFound": "未发现兼容的 Shizuku 服务",
|
"shizukuBinderNotFound": "未发现兼容的 Shizuku 服务",
|
||||||
"useSystemFont": "使用系统字体",
|
"useSystemFont": "使用系统字体",
|
||||||
"systemFontError": "加载系统字体出错:{}",
|
"systemFontError": "加载系统字体出错:{}",
|
||||||
|
3
build.sh
@@ -7,6 +7,9 @@ trap "cd "$CURR_DIR"" EXIT
|
|||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
git fetch && git merge origin/main && git push # Typically run after a PR to main, so bring dev up to date
|
git fetch && git merge origin/main && git push # Typically run after a PR to main, so bring dev up to date
|
||||||
fi
|
fi
|
||||||
|
cd .flutter
|
||||||
|
git checkout "$(flutter --version | head -2 | tail -1 | awk '{print $4}')" # Ensure included Flutter submodule version equals my environment
|
||||||
|
cd ..
|
||||||
rm ./build/app/outputs/flutter-apk/* 2>/dev/null # Get rid of older builds if any
|
rm ./build/app/outputs/flutter-apk/* 2>/dev/null # Get rid of older builds if any
|
||||||
flutter build apk --flavor normal && flutter build apk --split-per-abi --flavor normal # Build (both split and combined APKs)
|
flutter build apk --flavor normal && flutter build apk --split-per-abi --flavor normal # Build (both split and combined APKs)
|
||||||
for file in ./build/app/outputs/flutter-apk/app-*normal*.apk*; do mv "$file" "${file//-normal/}"; done
|
for file in ./build/app/outputs/flutter-apk/app-*normal*.apk*; do mv "$file" "${file//-normal/}"; done
|
||||||
|
54
fastlane/metadata/android/en-US/full_description.txt
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<p>Obtainium allows you to install and update Apps directly from their releases pages, and receive notifications when new releases are made available.</p>
|
||||||
|
<p>Read the <a href="https://github.com/ImranR98/Obtainium/wiki">Wiki</a></p>
|
||||||
|
<p>
|
||||||
|
<b>Currently supported App sources:</b>
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Open Source - General:</p>
|
||||||
|
<ul>
|
||||||
|
<li>GitHub</li>
|
||||||
|
<li>GitLab</li>
|
||||||
|
<li>Codeberg</li>
|
||||||
|
<li>F-Droid</li>
|
||||||
|
<li>Third Party F-Droid Repos</li>
|
||||||
|
<li>IzzyOnDroid</li>
|
||||||
|
<li>SourceForge</li>
|
||||||
|
<li>SourceHut</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Other - General:</p>
|
||||||
|
<ul>
|
||||||
|
<li>APKPure</li>
|
||||||
|
<li>Aptoide</li>
|
||||||
|
<li>Uptodowng</li>
|
||||||
|
<li>APKMirror (Track-Only)</li>
|
||||||
|
<li>Huawei AppGallery</li>
|
||||||
|
<li>Jenkins Jobs</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Open Source - App-Specific:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Mullvad</li>
|
||||||
|
<li>Signal</li>
|
||||||
|
<li>VLC</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Other - App-Specific:</p>
|
||||||
|
<ul>
|
||||||
|
<li>WhatsApp</li>
|
||||||
|
<li>Telegram App</li>
|
||||||
|
<li>Neutron Code</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><p>"HTML" (Fallback): Any other URL that returns an HTML page with links to APK files</p></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<b>Limitations:</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
For some sources, data is gathered using Web scraping and can easily break due to changes in website design. In such cases, more reliable methods may be unavailable.
|
||||||
|
</p>
|
BIN
fastlane/metadata/android/en-US/images/featureGraphic.png
Executable file
After Width: | Height: | Size: 66 KiB |
BIN
fastlane/metadata/android/en-US/images/icon.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
Normal file
After Width: | Height: | Size: 234 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
Normal file
After Width: | Height: | Size: 238 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
Normal file
After Width: | Height: | Size: 140 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
Normal file
After Width: | Height: | Size: 139 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
Normal file
After Width: | Height: | Size: 118 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
Normal file
After Width: | Height: | Size: 262 KiB |
1
fastlane/metadata/android/en-US/short_description.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Get android app updates directly from the source
|
1
fastlane/metadata/android/en-US/title.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Obtainium
|
@@ -184,7 +184,6 @@ class _ObtainiumState extends State<Obtainium> {
|
|||||||
[],
|
[],
|
||||||
0,
|
0,
|
||||||
{
|
{
|
||||||
'includePrereleases': true,
|
|
||||||
'versionDetection': true,
|
'versionDetection': true,
|
||||||
'apkFilterRegEx': 'fdroid',
|
'apkFilterRegEx': 'fdroid',
|
||||||
'invertAPKFilter': true
|
'invertAPKFilter': true
|
||||||
|
@@ -347,18 +347,6 @@ class _AppPageState extends State<AppPage> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getResetInstallStatusButton() => TextButton(
|
|
||||||
onPressed: app?.app == null || updating
|
|
||||||
? null
|
|
||||||
: () {
|
|
||||||
app!.app.installedVersion = null;
|
|
||||||
appsProvider.saveApps([app.app]);
|
|
||||||
},
|
|
||||||
child: Text(
|
|
||||||
tr('resetInstallStatus'),
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
));
|
|
||||||
|
|
||||||
getInstallOrUpdateButton() => TextButton(
|
getInstallOrUpdateButton() => TextButton(
|
||||||
onPressed: !updating &&
|
onPressed: !updating &&
|
||||||
(app?.app.installedVersion == null ||
|
(app?.app.installedVersion == null ||
|
||||||
@@ -403,16 +391,6 @@ class _AppPageState extends State<AppPage> {
|
|||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
children: [
|
children: [
|
||||||
if (app?.app.installedVersion != null &&
|
|
||||||
app?.app.installedVersion != app?.app.latestVersion &&
|
|
||||||
!isVersionDetectionStandard &&
|
|
||||||
!trackOnly)
|
|
||||||
IconButton(
|
|
||||||
onPressed: app?.downloadProgress != null || updating
|
|
||||||
? null
|
|
||||||
: showMarkUpdatedDialog,
|
|
||||||
tooltip: tr('markUpdated'),
|
|
||||||
icon: const Icon(Icons.done)),
|
|
||||||
if (source != null &&
|
if (source != null &&
|
||||||
source.combinedAppSpecificSettingFormItems.isNotEmpty)
|
source.combinedAppSpecificSettingFormItems.isNotEmpty)
|
||||||
IconButton(
|
IconButton(
|
||||||
@@ -458,14 +436,30 @@ class _AppPageState extends State<AppPage> {
|
|||||||
},
|
},
|
||||||
icon: const Icon(Icons.more_horiz),
|
icon: const Icon(Icons.more_horiz),
|
||||||
tooltip: tr('more')),
|
tooltip: tr('more')),
|
||||||
|
if (app?.app.installedVersion != null &&
|
||||||
|
app?.app.installedVersion != app?.app.latestVersion &&
|
||||||
|
!isVersionDetectionStandard &&
|
||||||
|
!trackOnly)
|
||||||
|
IconButton(
|
||||||
|
onPressed: app?.downloadProgress != null || updating
|
||||||
|
? null
|
||||||
|
: showMarkUpdatedDialog,
|
||||||
|
tooltip: tr('markUpdated'),
|
||||||
|
icon: const Icon(Icons.done)),
|
||||||
|
if ((!isVersionDetectionStandard || trackOnly) &&
|
||||||
|
app?.app.installedVersion != null &&
|
||||||
|
app?.app.installedVersion == app?.app.latestVersion)
|
||||||
|
IconButton(
|
||||||
|
onPressed: app?.app == null || updating
|
||||||
|
? null
|
||||||
|
: () {
|
||||||
|
app!.app.installedVersion = null;
|
||||||
|
appsProvider.saveApps([app.app]);
|
||||||
|
},
|
||||||
|
icon: const Icon(Icons.restore_rounded),
|
||||||
|
tooltip: tr('resetInstallStatus')),
|
||||||
const SizedBox(width: 16.0),
|
const SizedBox(width: 16.0),
|
||||||
Expanded(
|
Expanded(child: getInstallOrUpdateButton()),
|
||||||
child: (!isVersionDetectionStandard || trackOnly) &&
|
|
||||||
app?.app.installedVersion != null &&
|
|
||||||
app?.app.installedVersion ==
|
|
||||||
app?.app.latestVersion
|
|
||||||
? getResetInstallStatusButton()
|
|
||||||
: getInstallOrUpdateButton()),
|
|
||||||
const SizedBox(width: 16.0),
|
const SizedBox(width: 16.0),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: app?.downloadProgress != null || updating
|
onPressed: app?.downloadProgress != null || updating
|
||||||
|
@@ -243,7 +243,9 @@ Future<File> downloadFile(
|
|||||||
tempDownloadedFile.deleteSync(recursive: true);
|
tempDownloadedFile.deleteSync(recursive: true);
|
||||||
throw response.reasonPhrase ?? tr('unexpectedError');
|
throw response.reasonPhrase ?? tr('unexpectedError');
|
||||||
}
|
}
|
||||||
tempDownloadedFile.renameSync(downloadedFile.path);
|
if (tempDownloadedFile.existsSync()) {
|
||||||
|
tempDownloadedFile.renameSync(downloadedFile.path);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
client.close();
|
client.close();
|
||||||
}
|
}
|
||||||
|
24
pubspec.lock
@@ -307,10 +307,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_local_notifications
|
name: flutter_local_notifications
|
||||||
sha256: "66cc2fe16bf4bca71d795939763ad3f1830ad85772dc3b1561613c501859826d"
|
sha256: c18f1de98fe0bb9dd5ba91e1330d4febc8b6a7de6aae3ffe475ef423723e72f3
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "16.3.1+1"
|
version: "16.3.2"
|
||||||
flutter_local_notifications_linux:
|
flutter_local_notifications_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -482,10 +482,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: mime
|
name: mime
|
||||||
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
|
sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.4"
|
version: "1.0.5"
|
||||||
nested:
|
nested:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -751,10 +751,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: sqflite
|
name: sqflite
|
||||||
sha256: "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a"
|
sha256: c2c32eb0c74021d987336522acc3b6bf0082fbd0c540c36a9cf4ddb8ba891ddc
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "2.3.1"
|
||||||
sqflite_common:
|
sqflite_common:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -831,10 +831,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: url_launcher
|
name: url_launcher
|
||||||
sha256: d25bb0ca00432a5e1ee40e69c36c85863addf7cc45e433769d61bed3fe81fd96
|
sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.2.3"
|
version: "6.2.4"
|
||||||
url_launcher_android:
|
url_launcher_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -927,18 +927,18 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_android
|
name: webview_flutter_android
|
||||||
sha256: "161af93c2abaf94ef2192bffb53a3658b2d721a3bf99b69aa1e47814ee18cc96"
|
sha256: "4ea3c4e1b8ed590162b15b8a61b41b1ef3ff179a314627c16ce40c086d94b8af"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.13.2"
|
version: "3.14.0"
|
||||||
webview_flutter_platform_interface:
|
webview_flutter_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_platform_interface
|
name: webview_flutter_platform_interface
|
||||||
sha256: "80b40ae4fb959957eef9fa8970b6c9accda9f49fc45c2b75154696a8e8996cfe"
|
sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.9.1"
|
version: "2.10.0"
|
||||||
webview_flutter_wkwebview:
|
webview_flutter_wkwebview:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
# In Windows, build-name is used as the major, minor, and patch parts
|
# In Windows, build-name is used as the major, minor, and patch parts
|
||||||
# of the product and file versions while build-number is used as the build suffix.
|
# of the product and file versions while build-number is used as the build suffix.
|
||||||
version: 0.16.1+249 # When changing this, update the tag in main() accordingly
|
version: 1.0.0+250 # When changing this, update the tag in main() accordingly
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.0.0 <4.0.0'
|
sdk: '>=3.0.0 <4.0.0'
|
||||||
|