mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-07-13 13:26:43 +02:00
Merge pull request #2247 from ImranR98/dev
- Remove Oxford comma (#2245) - Show error dialog box when error notification tapped (#2246)
This commit is contained in:
2
.flutter
2
.flutter
Submodule .flutter updated: c236373904...ea121f8859
@ -320,11 +320,12 @@
|
|||||||
"stayOneVersionBehind": "Stay one version behind latest",
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"refreshBeforeDownload": "Refresh app details before download",
|
"refreshBeforeDownload": "Refresh app details before download",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"smartname": "Name (Smart)",
|
"smartname": "Name (Smart)",
|
||||||
"sortMethod": "Sort Method",
|
"sortMethod": "Sort Method",
|
||||||
"welcome": "Welcome",
|
"welcome": "Welcome",
|
||||||
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.",
|
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Želite li ukloniti aplikaciju?",
|
"one": "Želite li ukloniti aplikaciju?",
|
||||||
"other": "Želite li ukloniti aplikacije?"
|
"other": "Želite li ukloniti aplikacije?"
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Roman a la versió anterior a l'última",
|
"stayOneVersionBehind": "Roman a la versió anterior a l'última",
|
||||||
"refreshBeforeDownload": "Actualitza les dades de l'aplicació abans de descarregar-la",
|
"refreshBeforeDownload": "Actualitza les dades de l'aplicació abans de descarregar-la",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Nom",
|
"name": "Nom",
|
||||||
"smartname": "Nom (smart)",
|
"smartname": "Nom (smart)",
|
||||||
"sortMethod": "Mètode d'ordenació",
|
"sortMethod": "Mètode d'ordenació",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Zůstaňte o jednu verzi pozadu za nejnovější",
|
"stayOneVersionBehind": "Zůstaňte o jednu verzi pozadu za nejnovější",
|
||||||
"refreshBeforeDownload": "Obnovení údajů o aplikaci před stažením",
|
"refreshBeforeDownload": "Obnovení údajů o aplikaci před stažením",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Název",
|
"name": "Název",
|
||||||
"smartname": "Název (Smart)",
|
"smartname": "Název (Smart)",
|
||||||
"sortMethod": "Metoda třídění",
|
"sortMethod": "Metoda třídění",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Forbliv én version bagud den seneste",
|
"stayOneVersionBehind": "Forbliv én version bagud den seneste",
|
||||||
"refreshBeforeDownload": "Opdater app-detaljer før download",
|
"refreshBeforeDownload": "Opdater app-detaljer før download",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Navn",
|
"name": "Navn",
|
||||||
"smartname": "Navn (Smart)",
|
"smartname": "Navn (Smart)",
|
||||||
"sortMethod": "Sorteringsmetode",
|
"sortMethod": "Sorteringsmetode",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Eine Version hinter der neuesten Version bleiben",
|
"stayOneVersionBehind": "Eine Version hinter der neuesten Version bleiben",
|
||||||
"refreshBeforeDownload": "App-Details vor dem Download aktualisieren",
|
"refreshBeforeDownload": "App-Details vor dem Download aktualisieren",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"smartname": "Name (Smart)",
|
"smartname": "Name (Smart)",
|
||||||
"sortMethod": "Sortierverfahren",
|
"sortMethod": "Sortierverfahren",
|
||||||
|
@ -320,11 +320,12 @@
|
|||||||
"stayOneVersionBehind": "Stay one version behind latest",
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"refreshBeforeDownload": "Refresh app details before download",
|
"refreshBeforeDownload": "Refresh app details before download",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"smartname": "Name (Smart)",
|
"smartname": "Name (Smart)",
|
||||||
"sortMethod": "Sort Method",
|
"sortMethod": "Sort Method",
|
||||||
"welcome": "Welcome",
|
"welcome": "Welcome",
|
||||||
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.",
|
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Forigi la aplikaĵon?",
|
"one": "Forigi la aplikaĵon?",
|
||||||
"other": "Forigi la aplikaĵojn?"
|
"other": "Forigi la aplikaĵojn?"
|
||||||
|
@ -325,7 +325,7 @@
|
|||||||
"smartname": "Name (smart)",
|
"smartname": "Name (smart)",
|
||||||
"sortMethod": "Sort method",
|
"sortMethod": "Sort method",
|
||||||
"welcome": "Welcome",
|
"welcome": "Welcome",
|
||||||
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.",
|
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Remove App?",
|
"one": "Remove App?",
|
||||||
"other": "Remove Apps?"
|
"other": "Remove Apps?"
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Mantenerse una versión por detrás de la última",
|
"stayOneVersionBehind": "Mantenerse una versión por detrás de la última",
|
||||||
"refreshBeforeDownload": "Actualiza los datos de la aplicación antes de descargarla",
|
"refreshBeforeDownload": "Actualiza los datos de la aplicación antes de descargarla",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"smartname": "Nombre (Smart)",
|
"smartname": "Nombre (Smart)",
|
||||||
"sortMethod": "Método de clasificación",
|
"sortMethod": "Método de clasificación",
|
||||||
|
@ -320,11 +320,12 @@
|
|||||||
"stayOneVersionBehind": "یک نسخه از آخرین نسخه پشت سر بگذارید",
|
"stayOneVersionBehind": "یک نسخه از آخرین نسخه پشت سر بگذارید",
|
||||||
"refreshBeforeDownload": "قبل از دانلود، جزئیات برنامه را بازخوانی کنید",
|
"refreshBeforeDownload": "قبل از دانلود، جزئیات برنامه را بازخوانی کنید",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"smartname": "Name (Smart)",
|
"smartname": "Name (Smart)",
|
||||||
"sortMethod": "Sort Method",
|
"sortMethod": "Sort Method",
|
||||||
"welcome": "Welcome",
|
"welcome": "Welcome",
|
||||||
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.",
|
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "برنامه حذف شود؟",
|
"one": "برنامه حذف شود؟",
|
||||||
"other": "برنامه ها حذف شوند؟"
|
"other": "برنامه ها حذف شوند؟"
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Rester une version en arrière de la dernière",
|
"stayOneVersionBehind": "Rester une version en arrière de la dernière",
|
||||||
"refreshBeforeDownload": "Actualiser les détails de l'application avant de la télécharger",
|
"refreshBeforeDownload": "Actualiser les détails de l'application avant de la télécharger",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Nom",
|
"name": "Nom",
|
||||||
"smartname": "Nom (Smart)",
|
"smartname": "Nom (Smart)",
|
||||||
"sortMethod": "Méthode de tri",
|
"sortMethod": "Méthode de tri",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Maradjon egy verzióval a legújabb mögött",
|
"stayOneVersionBehind": "Maradjon egy verzióval a legújabb mögött",
|
||||||
"refreshBeforeDownload": "Az alkalmazás adatainak frissítése a letöltés előtt",
|
"refreshBeforeDownload": "Az alkalmazás adatainak frissítése a letöltés előtt",
|
||||||
"tencentAppStore": "Tencent Appstore",
|
"tencentAppStore": "Tencent Appstore",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Név",
|
"name": "Név",
|
||||||
"smartname": "Név (Okos)",
|
"smartname": "Név (Okos)",
|
||||||
"sortMethod": "Rendezési eljárás",
|
"sortMethod": "Rendezési eljárás",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Tetap satu versi di belakang versi terbaru",
|
"stayOneVersionBehind": "Tetap satu versi di belakang versi terbaru",
|
||||||
"refreshBeforeDownload": "Segarkan detail aplikasi sebelum mengunduh",
|
"refreshBeforeDownload": "Segarkan detail aplikasi sebelum mengunduh",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Nama",
|
"name": "Nama",
|
||||||
"smartname": "Nama (Cerdas)",
|
"smartname": "Nama (Cerdas)",
|
||||||
"sortMethod": "Metode Penyortiran",
|
"sortMethod": "Metode Penyortiran",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Rimanere una versione indietro rispetto alla più recente",
|
"stayOneVersionBehind": "Rimanere una versione indietro rispetto alla più recente",
|
||||||
"refreshBeforeDownload": "Aggiornare i dettagli dell'app prima del download",
|
"refreshBeforeDownload": "Aggiornare i dettagli dell'app prima del download",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Nome",
|
"name": "Nome",
|
||||||
"smartname": "Nome (intelligente)",
|
"smartname": "Nome (intelligente)",
|
||||||
"sortMethod": "Metodo di ordinamento",
|
"sortMethod": "Metodo di ordinamento",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "最新のバージョンから1つ前のものを使用する",
|
"stayOneVersionBehind": "最新のバージョンから1つ前のものを使用する",
|
||||||
"refreshBeforeDownload": "ダウンロード前にアプリの詳細を更新する",
|
"refreshBeforeDownload": "ダウンロード前にアプリの詳細を更新する",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "名称",
|
"name": "名称",
|
||||||
"smartname": "名前(スマート)",
|
"smartname": "名前(スマート)",
|
||||||
"sortMethod": "ソート方法",
|
"sortMethod": "ソート方法",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "최신 버전보다 한 버전 뒤에 머무르기",
|
"stayOneVersionBehind": "최신 버전보다 한 버전 뒤에 머무르기",
|
||||||
"refreshBeforeDownload": "다운로드 전에 앱 세부 정보 새로 고침",
|
"refreshBeforeDownload": "다운로드 전에 앱 세부 정보 새로 고침",
|
||||||
"tencentAppStore": "텐센트 앱 스토어",
|
"tencentAppStore": "텐센트 앱 스토어",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "이름",
|
"name": "이름",
|
||||||
"smartname": "이름(스마트)",
|
"smartname": "이름(스마트)",
|
||||||
"sortMethod": "정렬 방법",
|
"sortMethod": "정렬 방법",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Blijf een versie achter op de nieuwste",
|
"stayOneVersionBehind": "Blijf een versie achter op de nieuwste",
|
||||||
"refreshBeforeDownload": "Vernieuw app details voor download",
|
"refreshBeforeDownload": "Vernieuw app details voor download",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Naam",
|
"name": "Naam",
|
||||||
"smartname": "Naam (Slim)",
|
"smartname": "Naam (Slim)",
|
||||||
"sortMethod": "Sorteermethode",
|
"sortMethod": "Sorteermethode",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Pozostań jedną wersję w tyle za najnowszą",
|
"stayOneVersionBehind": "Pozostań jedną wersję w tyle za najnowszą",
|
||||||
"refreshBeforeDownload": "Odśwież szczegóły aplikacji przed pobraniem",
|
"refreshBeforeDownload": "Odśwież szczegóły aplikacji przed pobraniem",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Nazwa",
|
"name": "Nazwa",
|
||||||
"smartname": "Nazwa (Smart)",
|
"smartname": "Nazwa (Smart)",
|
||||||
"sortMethod": "Metoda sortowania",
|
"sortMethod": "Metoda sortowania",
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"invalidURLForSource": "Não é uma URL de app válida de {}",
|
||||||
|
"noReleaseFound": "Não foi possível encontrar um lançamento adequado",
|
||||||
"noVersionFound": "Não foi possível determinar a versão do lançamento",
|
"noVersionFound": "Não foi possível determinar a versão do lançamento",
|
||||||
"urlMatchesNoSource": "A URL não corresponde com nenhuma fonte conhecida",
|
"urlMatchesNoSource": "A URL não corresponde com nenhuma fonte conhecida",
|
||||||
"cantInstallOlderVersion": "Não é possível instalar uma versão mais antiga de um app",
|
"cantInstallOlderVersion": "Não é possível instalar uma versão mais antiga de um app",
|
||||||
|
"appIdMismatch": "O ID do pacote baixado não corresponde ao existente",
|
||||||
"functionNotImplemented": "Essa classe não implementou esse recurso ainda",
|
"functionNotImplemented": "Essa classe não implementou esse recurso ainda",
|
||||||
"placeholder": "Espaço reservado",
|
"placeholder": "Espaço reservado",
|
||||||
"someErrors": "Ocorreram alguns erros",
|
"someErrors": "Ocorreram alguns erros",
|
||||||
@ -10,23 +13,27 @@
|
|||||||
"and": "e",
|
"and": "e",
|
||||||
"githubPATLabel": "Token de acesso pessoal do GitHub (aumenta o limite de taxa)",
|
"githubPATLabel": "Token de acesso pessoal do GitHub (aumenta o limite de taxa)",
|
||||||
"includePrereleases": "Incluir pré-lançamentos",
|
"includePrereleases": "Incluir pré-lançamentos",
|
||||||
|
"fallbackToOlderReleases": "Recorrer à lançamentos mais antigos",
|
||||||
"filterReleaseTitlesByRegEx": "Filtrar títulos de lançamentos por expressão regular",
|
"filterReleaseTitlesByRegEx": "Filtrar títulos de lançamentos por expressão regular",
|
||||||
"invalidRegEx": "Expressão regular inválida",
|
"invalidRegEx": "Expressão regular inválida",
|
||||||
"noDescription": "Sem descrição",
|
"noDescription": "Sem descrição",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"continue": "Continuar",
|
"continue": "Continuar",
|
||||||
"requiredInBrackets": "(obrigatório)",
|
"requiredInBrackets": "(obrigatório)",
|
||||||
|
"dropdownNoOptsError": "ERRO: O MENU DEVE TER PELO MENOS UMA OPÇÃO",
|
||||||
"colour": "Cor",
|
"colour": "Cor",
|
||||||
"standard": "Padrão",
|
"standard": "Padrão",
|
||||||
"custom": "Personalizado",
|
"custom": "Personalizado",
|
||||||
"useMaterialYou": "Usar Material You",
|
"useMaterialYou": "Usar Material You",
|
||||||
"githubStarredRepos": "Repositórios com estrela do GitHub",
|
"githubStarredRepos": "Repositórios com estrela do GitHub",
|
||||||
"uname": "Nome de usuário",
|
"uname": "Nome de usuário",
|
||||||
|
"wrongArgNum": "Número errado de argumentos fornecidos",
|
||||||
"xIsTrackOnly": "{} é somente de rastreio",
|
"xIsTrackOnly": "{} é somente de rastreio",
|
||||||
"source": "Fonte",
|
"source": "Fonte",
|
||||||
"app": "App",
|
"app": "App",
|
||||||
"appsFromSourceAreTrackOnly": "Apps desta fonte são somente para rastreamento.",
|
"appsFromSourceAreTrackOnly": "Apps desta fonte são somente para rastreamento.",
|
||||||
"youPickedTrackOnly": "Você selecionou a opção de somente rastreamento.",
|
"youPickedTrackOnly": "Você selecionou a opção de somente rastreamento.",
|
||||||
|
"trackOnlyAppDescription": "As atualizações do app serão rastreadas, mas o Obtainium não baixará ou instalará elas.",
|
||||||
"cancelled": "Cancelado",
|
"cancelled": "Cancelado",
|
||||||
"appAlreadyAdded": "O app já foi adicionado",
|
"appAlreadyAdded": "O app já foi adicionado",
|
||||||
"alreadyUpToDateQuestion": "O app já está atualizado?",
|
"alreadyUpToDateQuestion": "O app já está atualizado?",
|
||||||
@ -41,14 +48,17 @@
|
|||||||
"trackOnlyInBrackets": "(somente rastreamento)",
|
"trackOnlyInBrackets": "(somente rastreamento)",
|
||||||
"searchableInBrackets": "(pesquisável)",
|
"searchableInBrackets": "(pesquisável)",
|
||||||
"appsString": "Apps",
|
"appsString": "Apps",
|
||||||
|
"noApps": "Nenhum app",
|
||||||
"noAppsForFilter": "Nenhum app pro filtro",
|
"noAppsForFilter": "Nenhum app pro filtro",
|
||||||
"byX": "Por {}",
|
"byX": "Por {}",
|
||||||
"percentProgress": "Progresso: {}%",
|
"percentProgress": "Progresso: {}%",
|
||||||
"pleaseWait": "Por favor aguarde",
|
"pleaseWait": "Por favor aguarde",
|
||||||
|
"updateAvailable": "Atualização disponível",
|
||||||
"notInstalled": "Não instalado",
|
"notInstalled": "Não instalado",
|
||||||
"pseudoVersion": "pseudo-versão",
|
"pseudoVersion": "pseudo-versão",
|
||||||
"selectAll": "Selecionar tudo",
|
"selectAll": "Selecionar tudo",
|
||||||
"deselectX": "Desselecionar {}",
|
"deselectX": "Desselecionar {}",
|
||||||
|
"xWillBeRemovedButRemainInstalled": "{} será removido do Obtainium mas continuará instalado no dispositivo.",
|
||||||
"removeSelectedAppsQuestion": "Remover os apps selecionados?",
|
"removeSelectedAppsQuestion": "Remover os apps selecionados?",
|
||||||
"removeSelectedApps": "Remover apps selecionados",
|
"removeSelectedApps": "Remover apps selecionados",
|
||||||
"updateX": "Atualizar {}",
|
"updateX": "Atualizar {}",
|
||||||
@ -57,12 +67,14 @@
|
|||||||
"changeX": "Alterar {}",
|
"changeX": "Alterar {}",
|
||||||
"installUpdateApps": "Instalar/atualizar apps",
|
"installUpdateApps": "Instalar/atualizar apps",
|
||||||
"installUpdateSelectedApps": "Instalar/atualizar apps selecionados",
|
"installUpdateSelectedApps": "Instalar/atualizar apps selecionados",
|
||||||
|
"markXSelectedAppsAsUpdated": "Marcar os {} apps selecionados como atualizados?",
|
||||||
"no": "Não",
|
"no": "Não",
|
||||||
"yes": "Sim",
|
"yes": "Sim",
|
||||||
"markSelectedAppsUpdated": "Marcar apps selecionados como atualizados",
|
"markSelectedAppsUpdated": "Marcar apps selecionados como atualizados",
|
||||||
"pinToTop": "Fixar ao topo",
|
"pinToTop": "Fixar ao topo",
|
||||||
"unpinFromTop": "Desfixar do topo",
|
"unpinFromTop": "Desfixar do topo",
|
||||||
"resetInstallStatusForSelectedAppsQuestion": "Redefinir o estado de instalação dos apps selecionados?",
|
"resetInstallStatusForSelectedAppsQuestion": "Redefinir o estado de instalação dos apps selecionados?",
|
||||||
|
"installStatusOfXWillBeResetExplanation": "Os estados de instalação dos apps selecionados serão redefinidos.\n\nIsso pode ajudar quando a versão exibida no Obtainium está incorreta devido a atualizações malsucedidas ou outros problemas.",
|
||||||
"customLinkMessage": "Esses links funcionarão em dispositivos com o Obtainium instalado",
|
"customLinkMessage": "Esses links funcionarão em dispositivos com o Obtainium instalado",
|
||||||
"shareAppConfigLinks": "Compartilhar configuração do app como um link HTML",
|
"shareAppConfigLinks": "Compartilhar configuração do app como um link HTML",
|
||||||
"shareSelectedAppURLs": "Compartilhar as URLs dos apps selecionados",
|
"shareSelectedAppURLs": "Compartilhar as URLs dos apps selecionados",
|
||||||
@ -77,16 +89,20 @@
|
|||||||
"upToDateApps": "Apps atualizados",
|
"upToDateApps": "Apps atualizados",
|
||||||
"nonInstalledApps": "Apps não instalados",
|
"nonInstalledApps": "Apps não instalados",
|
||||||
"importExport": "Importar/Exportar",
|
"importExport": "Importar/Exportar",
|
||||||
|
"settings": "Configurações",
|
||||||
"exportedTo": "Exportado para {}",
|
"exportedTo": "Exportado para {}",
|
||||||
"obtainiumExport": "Exportação do Obtainium",
|
"obtainiumExport": "Exportação do Obtainium",
|
||||||
"invalidInput": "Entrada inválida",
|
"invalidInput": "Entrada inválida",
|
||||||
"importedX": "{} importado(s)",
|
"importedX": "{} importado(s)",
|
||||||
"obtainiumImport": "Importação do Obtainium",
|
"obtainiumImport": "Importação do Obtainium",
|
||||||
|
"importFromURLList": "Importar da lista de URLs",
|
||||||
"searchQuery": "Consulta de pesquisa",
|
"searchQuery": "Consulta de pesquisa",
|
||||||
"appURLList": "Lista de URLs dos apps",
|
"appURLList": "Lista de URLs dos apps",
|
||||||
|
"line": "Linha",
|
||||||
"searchX": "Pesquisar {}",
|
"searchX": "Pesquisar {}",
|
||||||
"noResults": "Nenhum resultado encontrado",
|
"noResults": "Nenhum resultado encontrado",
|
||||||
"importX": "Importar {}",
|
"importX": "Importar {}",
|
||||||
|
"importedAppsIdDisclaimer": "Os apps importados podem ser exibidos incorretamente como se não estivessem instalados.\nPara resolver isso, reinstale eles pelo Obtainium.\nIsso não afetará os dados dos apps.\n\nIsso somente afeta a URL e os métodos de importação de terceiros.",
|
||||||
"importErrors": "Erros de importação",
|
"importErrors": "Erros de importação",
|
||||||
"importedXOfYApps": "{} de {} foram importados.",
|
"importedXOfYApps": "{} de {} foram importados.",
|
||||||
"followingURLsHadErrors": "As seguintes URLs tiveram erros:",
|
"followingURLsHadErrors": "As seguintes URLs tiveram erros:",
|
||||||
@ -97,6 +113,7 @@
|
|||||||
"dark": "Escuro",
|
"dark": "Escuro",
|
||||||
"light": "Claro",
|
"light": "Claro",
|
||||||
"followSystem": "Seguir o sistema",
|
"followSystem": "Seguir o sistema",
|
||||||
|
"followSystemThemeExplanation": "Só é possível seguir o tema do sistema ao usar aplicativos de terceiros",
|
||||||
"useBlackTheme": "Usar o tema escuro de preto profundo",
|
"useBlackTheme": "Usar o tema escuro de preto profundo",
|
||||||
"appSortBy": "Ordenar apps por",
|
"appSortBy": "Ordenar apps por",
|
||||||
"authorName": "Autor/nome",
|
"authorName": "Autor/nome",
|
||||||
@ -108,6 +125,7 @@
|
|||||||
"bgUpdateCheckInterval": "Intervalo de busca por atualizações em segundo plano",
|
"bgUpdateCheckInterval": "Intervalo de busca por atualizações em segundo plano",
|
||||||
"neverManualOnly": "Nunca - somente manualmente",
|
"neverManualOnly": "Nunca - somente manualmente",
|
||||||
"appearance": "Aparência",
|
"appearance": "Aparência",
|
||||||
|
"showWebInAppView": "Mostrar a fonte da pagina web na tela de apps",
|
||||||
"pinUpdates": "Fixar atualizações no topo da tela de apps",
|
"pinUpdates": "Fixar atualizações no topo da tela de apps",
|
||||||
"updates": "Atualizações",
|
"updates": "Atualizações",
|
||||||
"sourceSpecific": "Específico à fonte",
|
"sourceSpecific": "Específico à fonte",
|
||||||
@ -116,29 +134,37 @@
|
|||||||
"appLogs": "Registros do app",
|
"appLogs": "Registros do app",
|
||||||
"close": "Fechar",
|
"close": "Fechar",
|
||||||
"share": "Compartilhar",
|
"share": "Compartilhar",
|
||||||
|
"appNotFound": "O app não foi encontrado",
|
||||||
|
"obtainiumExportHyphenatedLowercase": "obtainium-export",
|
||||||
"pickAnAPK": "Selecione um APK",
|
"pickAnAPK": "Selecione um APK",
|
||||||
"appHasMoreThanOnePackage": "{} tem mais de um pacote:",
|
"appHasMoreThanOnePackage": "{} tem mais de um pacote:",
|
||||||
"deviceSupportsXArch": "Seu dispositivo suporta a arquitetura de CPU {}.",
|
"deviceSupportsXArch": "Seu dispositivo suporta a arquitetura de CPU {}.",
|
||||||
|
"deviceSupportsFollowingArchs": "Seu dispositivo suporta as seguintes arquiteturas de CPU:",
|
||||||
"warning": "Alerta",
|
"warning": "Alerta",
|
||||||
"sourceIsXButPackageFromYPrompt": "A fonte do app é '{}' mas o pacote de lançamento vem de '{}'. Continuar mesmo assim?",
|
"sourceIsXButPackageFromYPrompt": "A fonte do app é '{}' mas o pacote de lançamento vem de '{}'. Continuar mesmo assim?",
|
||||||
"updatesAvailable": "Atualizações disponíveis",
|
"updatesAvailable": "Atualizações disponíveis",
|
||||||
|
"updatesAvailableNotifDescription": "Notifica o usuário que atualizações estão disponíveis para um ou mais apps rastreados pelo Obtainium",
|
||||||
"noNewUpdates": "Nenhuma atualização disponível.",
|
"noNewUpdates": "Nenhuma atualização disponível.",
|
||||||
"xHasAnUpdate": "{} tem uma atualização.",
|
"xHasAnUpdate": "{} tem uma atualização.",
|
||||||
"appsUpdated": "Apps atualizados",
|
"appsUpdated": "Apps atualizados",
|
||||||
"appsNotUpdated": "Falhou ao atualizar os aplicativos",
|
"appsNotUpdated": "Falhou ao atualizar os aplicativos",
|
||||||
"appsUpdatedNotifDescription": "Notifica o usuário que atualizações de um ou mais apps foram aplicadas em segundo plano",
|
"appsUpdatedNotifDescription": "Notifica o usuário que atualizações de um ou mais apps foram aplicadas em segundo plano",
|
||||||
|
"xWasUpdatedToY": "{} foi atualizado para a versão {}.",
|
||||||
"xWasNotUpdatedToY": "Falha ao atualizar {} para a versão {}.",
|
"xWasNotUpdatedToY": "Falha ao atualizar {} para a versão {}.",
|
||||||
"errorCheckingUpdates": "Ocorreu um erro ao buscar atualizações",
|
"errorCheckingUpdates": "Ocorreu um erro ao buscar atualizações",
|
||||||
|
"errorCheckingUpdatesNotifDescription": "Uma notificação que mostra quando a busca de atualizações em segundo plano falha",
|
||||||
"appsRemoved": "Apps removidos",
|
"appsRemoved": "Apps removidos",
|
||||||
"appsRemovedNotifDescription": "Notifica o usuário que um ou mais apps foram removidos devido a erros ao carregá-los",
|
"appsRemovedNotifDescription": "Notifica o usuário que um ou mais apps foram removidos devido a erros ao carregá-los",
|
||||||
"xWasRemovedDueToErrorY": "{} for removido devido ao erro: {}",
|
"xWasRemovedDueToErrorY": "{} for removido devido ao erro: {}",
|
||||||
"completeAppInstallation": "Concluir instalação do app",
|
"completeAppInstallation": "Concluir instalação do app",
|
||||||
|
"obtainiumMustBeOpenToInstallApps": "O Obtainium precisa estar aberto para instalar apps",
|
||||||
"completeAppInstallationNotifDescription": "Pede pro usuário voltar ao Obtainium para concluir a instalação de um app",
|
"completeAppInstallationNotifDescription": "Pede pro usuário voltar ao Obtainium para concluir a instalação de um app",
|
||||||
"checkingForUpdates": "Buscando atualizações",
|
"checkingForUpdates": "Buscando atualizações",
|
||||||
"checkingForUpdatesNotifDescription": "Notificação transitória que aparece ao buscar atualizações",
|
"checkingForUpdatesNotifDescription": "Notificação transitória que aparece ao buscar atualizações",
|
||||||
"pleaseAllowInstallPerm": "Permita que o Obtainium instale apps",
|
"pleaseAllowInstallPerm": "Permita que o Obtainium instale apps",
|
||||||
"trackOnly": "Somente rastreamento",
|
"trackOnly": "Somente rastreamento",
|
||||||
"errorWithHttpStatusCode": "Erro {}",
|
"errorWithHttpStatusCode": "Erro {}",
|
||||||
|
"versionCorrectionDisabled": "Correção de versão desativada (o plugin parece não funcionar)",
|
||||||
"unknown": "Desconhecido",
|
"unknown": "Desconhecido",
|
||||||
"none": "Nenhum",
|
"none": "Nenhum",
|
||||||
"never": "Nunca",
|
"never": "Nunca",
|
||||||
@ -150,6 +176,7 @@
|
|||||||
"fdroid": "Oficial do F-Droid",
|
"fdroid": "Oficial do F-Droid",
|
||||||
"appIdOrName": "ID do app ou nome",
|
"appIdOrName": "ID do app ou nome",
|
||||||
"appId": "ID do app",
|
"appId": "ID do app",
|
||||||
|
"appWithIdOrNameNotFound": "Nenhum app foi encontrado com aquele ID ou nome",
|
||||||
"reposHaveMultipleApps": "Repositórios podem conter vários apps",
|
"reposHaveMultipleApps": "Repositórios podem conter vários apps",
|
||||||
"fdroidThirdPartyRepo": "Repositório de terceiros do F-Droid",
|
"fdroidThirdPartyRepo": "Repositório de terceiros do F-Droid",
|
||||||
"install": "Instalar",
|
"install": "Instalar",
|
||||||
@ -157,6 +184,8 @@
|
|||||||
"update": "Atualizar",
|
"update": "Atualizar",
|
||||||
"markUpdated": "Marcar como atualizado",
|
"markUpdated": "Marcar como atualizado",
|
||||||
"additionalOptions": "Opções adicionais",
|
"additionalOptions": "Opções adicionais",
|
||||||
|
"disableVersionDetection": "Desativar detecção de versão",
|
||||||
|
"noVersionDetectionExplanation": "Essa opção só seve ser usada para apps aonde a detecção de versão não funciona corretamente.",
|
||||||
"downloadingX": "Baixando {}",
|
"downloadingX": "Baixando {}",
|
||||||
"downloadX": "Baixar {}",
|
"downloadX": "Baixar {}",
|
||||||
"downloadedX": "{} foi baixado",
|
"downloadedX": "{} foi baixado",
|
||||||
@ -168,7 +197,9 @@
|
|||||||
"categories": "Categorias",
|
"categories": "Categorias",
|
||||||
"category": "Categoria",
|
"category": "Categoria",
|
||||||
"noCategory": "Nenhuma categoria",
|
"noCategory": "Nenhuma categoria",
|
||||||
|
"noCategories": "Nenhuma categoria",
|
||||||
"deleteCategoriesQuestion": "Excluir categorias?",
|
"deleteCategoriesQuestion": "Excluir categorias?",
|
||||||
|
"categoryDeleteWarning": "Todos os apps em categorias excluídas ficarão sem categoria.",
|
||||||
"addCategory": "Adicionar categoria",
|
"addCategory": "Adicionar categoria",
|
||||||
"label": "Rótulo",
|
"label": "Rótulo",
|
||||||
"language": "Idioma",
|
"language": "Idioma",
|
||||||
@ -177,8 +208,11 @@
|
|||||||
"selectedCategorizeWarning": "Isso substituirá a configuração de categoria existente dos apps selecionados.",
|
"selectedCategorizeWarning": "Isso substituirá a configuração de categoria existente dos apps selecionados.",
|
||||||
"filterAPKsByRegEx": "Filtrar APKs por expressão regular",
|
"filterAPKsByRegEx": "Filtrar APKs por expressão regular",
|
||||||
"removeFromObtainium": "Remover do Obtainium",
|
"removeFromObtainium": "Remover do Obtainium",
|
||||||
|
"uninstallFromDevice": "Desinstalar do dispositivo",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Funciona somente em apps com a detecção de versão desativada.",
|
"onlyWorksWithNonVersionDetectApps": "Funciona somente em apps com a detecção de versão desativada.",
|
||||||
|
"releaseDateAsVersion": "Usar data de lançamento como número da versão",
|
||||||
"releaseTitleAsVersion": "Usar título do lançamento como número da versão",
|
"releaseTitleAsVersion": "Usar título do lançamento como número da versão",
|
||||||
|
"releaseDateAsVersionExplanation": "Essa opção só deve ser usada para apps quais a detecção de versão não funciona corretamente, mas uma data de lançamento está disponível.",
|
||||||
"changes": "Alterações",
|
"changes": "Alterações",
|
||||||
"releaseDate": "Data de lançamento",
|
"releaseDate": "Data de lançamento",
|
||||||
"importFromURLsInFile": "Importar das URLs em arquivo (como OPML)",
|
"importFromURLsInFile": "Importar das URLs em arquivo (como OPML)",
|
||||||
@ -191,64 +225,81 @@
|
|||||||
"overrideSource": "Sobrescrever fonte",
|
"overrideSource": "Sobrescrever fonte",
|
||||||
"dontShowAgain": "Não mostrar isso novamente",
|
"dontShowAgain": "Não mostrar isso novamente",
|
||||||
"dontShowTrackOnlyWarnings": "Não mostrar alertas de \"somente rastreamento\"",
|
"dontShowTrackOnlyWarnings": "Não mostrar alertas de \"somente rastreamento\"",
|
||||||
|
"dontShowAPKOriginWarnings": "Não mostrar alertas de origem dos APKs",
|
||||||
"moveNonInstalledAppsToBottom": "Mover apps não instalados ao final da tela de apps",
|
"moveNonInstalledAppsToBottom": "Mover apps não instalados ao final da tela de apps",
|
||||||
"gitlabPATLabel": "Token de acesso pessoal do GitLab",
|
"gitlabPATLabel": "Token de acesso pessoal do GitLab",
|
||||||
"about": "Sobre",
|
"about": "Sobre",
|
||||||
"requiresCredentialsInSettings": "{} precisa de credenciais adicionais (nas Configurações)",
|
"requiresCredentialsInSettings": "{} precisa de credenciais adicionais (nas Configurações)",
|
||||||
"checkOnStart": "Buscar atualizações ao abrir o app",
|
"checkOnStart": "Buscar atualizações ao abrir o app",
|
||||||
|
"tryInferAppIdFromCode": "Tentar inferir o ID do app pelo código fonte",
|
||||||
"removeOnExternalUninstall": "Remover automaticamente apps desinstalados externamente",
|
"removeOnExternalUninstall": "Remover automaticamente apps desinstalados externamente",
|
||||||
"pickHighestVersionCode": "Selecionar APK de versão mais alta automaticamente",
|
"pickHighestVersionCode": "Selecionar APK de versão mais alta automaticamente",
|
||||||
|
"checkUpdateOnDetailPage": "Buscar atualizações ao abrir a tela de detalhes de um app",
|
||||||
"disablePageTransitions": "Desativar animações de transição de tela",
|
"disablePageTransitions": "Desativar animações de transição de tela",
|
||||||
"reversePageTransitions": "Inverter animações de transição de tela",
|
"reversePageTransitions": "Inverter animações de transição de tela",
|
||||||
"minStarCount": "Número de estrelas mínimo",
|
"minStarCount": "Número de estrelas mínimo",
|
||||||
"addInfoBelow": "Adicione essa informação abaixo.",
|
"addInfoBelow": "Adicione essa informação abaixo.",
|
||||||
"addInfoInSettings": "Adicione essa informação nas Configurações.",
|
"addInfoInSettings": "Adicione essa informação nas Configurações.",
|
||||||
|
"githubSourceNote": "O limite de taxa do GitHub pode ser evitado ao usar uma chave de API.",
|
||||||
"sortByLastLinkSegment": "Ordenar somente pelo ultimo segmento do link",
|
"sortByLastLinkSegment": "Ordenar somente pelo ultimo segmento do link",
|
||||||
"filterReleaseNotesByRegEx": "Filtrar notas de lançamento por expressão regular",
|
"filterReleaseNotesByRegEx": "Filtrar notas de lançamento por expressão regular",
|
||||||
|
"customLinkFilterRegex": "Filtro de link de APK personalizado por expressão regular (padrão '.apk$')",
|
||||||
"appsPossiblyUpdated": "Tentativas de atualização de apps",
|
"appsPossiblyUpdated": "Tentativas de atualização de apps",
|
||||||
|
"appsPossiblyUpdatedNotifDescription": "Notifica o usuário que atualizações de um ou mais apps podem ter sido aplicadas em segundo plano",
|
||||||
"xWasPossiblyUpdatedToY": "{} pode ter sido atualizado para a versão {}.",
|
"xWasPossiblyUpdatedToY": "{} pode ter sido atualizado para a versão {}.",
|
||||||
"enableBackgroundUpdates": "Ativar atualizações em segundo plano",
|
"enableBackgroundUpdates": "Ativar atualizações em segundo plano",
|
||||||
"backgroundUpdateReqsExplanation": "Atualizações em segundo plano podem não funcionar com todos os apps.",
|
"backgroundUpdateReqsExplanation": "Atualizações em segundo plano podem não funcionar com todos os apps.",
|
||||||
"backgroundUpdateLimitsExplanation": "O sucesso de uma instalação em segundo plano só pode ser determinada ao abrir o Obtainium.",
|
"backgroundUpdateLimitsExplanation": "O sucesso de uma instalação em segundo plano só pode ser determinada ao abrir o Obtainium.",
|
||||||
"verifyLatestTag": "Verificar a tag 'mais recente'",
|
"verifyLatestTag": "Verificar a tag 'mais recente'",
|
||||||
|
"intermediateLinkRegex": "Filtrar por um link 'intermediário' para visitar",
|
||||||
"filterByLinkText": "Filtrar links por texto do link",
|
"filterByLinkText": "Filtrar links por texto do link",
|
||||||
"intermediateLinkNotFound": "Link intermediário não encontrado",
|
"intermediateLinkNotFound": "Link intermediário não encontrado",
|
||||||
"intermediateLink": "Link intermediário",
|
"intermediateLink": "Link intermediário",
|
||||||
"exemptFromBackgroundUpdates": "Isento de atualizações em segundo plano (caso ativadas)",
|
"exemptFromBackgroundUpdates": "Isento de atualizações em segundo plano (caso ativadas)",
|
||||||
|
"bgUpdatesOnWiFiOnly": "Desativar atualizações em segundo plano fora do Wi-Fi",
|
||||||
"bgUpdatesWhileChargingOnly": "Desativar atualizações em segundo plano fora do carregador",
|
"bgUpdatesWhileChargingOnly": "Desativar atualizações em segundo plano fora do carregador",
|
||||||
"autoSelectHighestVersionCode": "Selecionar automaticamente APK com o código de versão mais alto",
|
"autoSelectHighestVersionCode": "Selecionar automaticamente APK com o código de versão mais alto",
|
||||||
"versionExtractionRegEx": "ExReg de extração do número da versão",
|
"versionExtractionRegEx": "ExReg de extração do número da versão",
|
||||||
"trimVersionString": "Cortar número da versal com ExReg",
|
"trimVersionString": "Cortar número da versal com ExReg",
|
||||||
"matchGroupToUseForX": "Corresponder grupo para o uso em \"{}\"",
|
"matchGroupToUseForX": "Corresponder grupo para o uso em \"{}\"",
|
||||||
|
"matchGroupToUse": "Corresponder grupo para o uso para a extração do número da versão por ExReg",
|
||||||
"highlightTouchTargets": "Acentuar alvos de toque menos óbvios",
|
"highlightTouchTargets": "Acentuar alvos de toque menos óbvios",
|
||||||
"pickExportDir": "Selecionar pasta de exportação",
|
"pickExportDir": "Selecionar pasta de exportação",
|
||||||
"autoExportOnChanges": "Exportar automaticamente ao ocorrer alterações",
|
"autoExportOnChanges": "Exportar automaticamente ao ocorrer alterações",
|
||||||
"includeSettings": "Incluir configurações",
|
"includeSettings": "Incluir configurações",
|
||||||
|
"filterVersionsByRegEx": "Filtrar versões por expressão regular",
|
||||||
"trySelectingSuggestedVersionCode": "Tente selecionar o APK com o código de versão sugerido",
|
"trySelectingSuggestedVersionCode": "Tente selecionar o APK com o código de versão sugerido",
|
||||||
"dontSortReleasesList": "Manter ordem de lançamento da API",
|
"dontSortReleasesList": "Manter ordem de lançamento da API",
|
||||||
"reverseSort": "Ordem inversa",
|
"reverseSort": "Ordem inversa",
|
||||||
"takeFirstLink": "Usar o primeiro link",
|
"takeFirstLink": "Usar o primeiro link",
|
||||||
"skipSort": "Pular ordenação",
|
"skipSort": "Pular ordenação",
|
||||||
"debugMenu": "Menu de depuração",
|
"debugMenu": "Menu de depuração",
|
||||||
|
"bgTaskStarted": "Tarefa em segundo plano iniada - verifique os registros.",
|
||||||
"runBgCheckNow": "Executar busca por atualizações em segundo plano agora",
|
"runBgCheckNow": "Executar busca por atualizações em segundo plano agora",
|
||||||
"versionExtractWholePage": "Aplicar ExReg de extração de número de versão à página inteira",
|
"versionExtractWholePage": "Aplicar ExReg de extração de número de versão à página inteira",
|
||||||
"installing": "Instalando",
|
"installing": "Instalando",
|
||||||
|
"skipUpdateNotifications": "Pular notificações de atualização",
|
||||||
"updatesAvailableNotifChannel": "Atualizações disponíveis",
|
"updatesAvailableNotifChannel": "Atualizações disponíveis",
|
||||||
"appsUpdatedNotifChannel": "Apps atualizados",
|
"appsUpdatedNotifChannel": "Apps atualizados",
|
||||||
"appsPossiblyUpdatedNotifChannel": "Tentativas de atualização de apps",
|
"appsPossiblyUpdatedNotifChannel": "Tentativas de atualização de apps",
|
||||||
"errorCheckingUpdatesNotifChannel": "Erro ao buscar atualizações",
|
"errorCheckingUpdatesNotifChannel": "Erro ao buscar atualizações",
|
||||||
"appsRemovedNotifChannel": "Apps removidos",
|
"appsRemovedNotifChannel": "Apps removidos",
|
||||||
"downloadingXNotifChannel": "Baixando {}",
|
"downloadingXNotifChannel": "Baixando {}",
|
||||||
|
"completeAppInstallationNotifChannel": "Concluir instalação do app",
|
||||||
"checkingForUpdatesNotifChannel": "Buscando atualizações",
|
"checkingForUpdatesNotifChannel": "Buscando atualizações",
|
||||||
"onlyCheckInstalledOrTrackOnlyApps": "Buscar atualizações somente para apps instalados e de somente rastreamento",
|
"onlyCheckInstalledOrTrackOnlyApps": "Buscar atualizações somente para apps instalados e de somente rastreamento",
|
||||||
"supportFixedAPKURL": "Suportar URLs de APK fixas",
|
"supportFixedAPKURL": "Suportar URLs de APK fixas",
|
||||||
|
"selectX": "Selecionar {}",
|
||||||
"parallelDownloads": "Permitir downloads em paralelo",
|
"parallelDownloads": "Permitir downloads em paralelo",
|
||||||
|
"useShizuku": "Usar Shizuku ou Sui para instalação",
|
||||||
"shizukuBinderNotFound": "Serviço Shizuku não está em execução",
|
"shizukuBinderNotFound": "Serviço Shizuku não está em execução",
|
||||||
"shizukuOld": "Versão do Shizuku antiga (<11) - atualize",
|
"shizukuOld": "Versão do Shizuku antiga (<11) - atualize",
|
||||||
|
"shizukuOldAndroidWithADB": "Shizuku sendo executado no Android < 8.1 com ADB - atualize o Android ou use o Sui",
|
||||||
"shizukuPretendToBeGooglePlay": "Definir Google Play como a fonte de instalação (se o Shizuku é usado)",
|
"shizukuPretendToBeGooglePlay": "Definir Google Play como a fonte de instalação (se o Shizuku é usado)",
|
||||||
"useSystemFont": "Usar a fonte do sistema",
|
"useSystemFont": "Usar a fonte do sistema",
|
||||||
"useVersionCodeAsOSVersion": "Usar código de versão do app como a versão detectada pelo sistema",
|
"useVersionCodeAsOSVersion": "Usar código de versão do app como a versão detectada pelo sistema",
|
||||||
"requestHeader": "Cabeçalho da solicitação",
|
"requestHeader": "Cabeçalho da solicitação",
|
||||||
|
"useLatestAssetDateAsReleaseDate": "Usar o envio de item mais recente como a data de lançamento",
|
||||||
"defaultPseudoVersioningMethod": "Método de pseudo-versão padrão",
|
"defaultPseudoVersioningMethod": "Método de pseudo-versão padrão",
|
||||||
"partialAPKHash": "Hash do APK parcial",
|
"partialAPKHash": "Hash do APK parcial",
|
||||||
"APKLinkHash": "Hash do link do APK",
|
"APKLinkHash": "Hash do link do APK",
|
||||||
@ -258,18 +309,23 @@
|
|||||||
"latest": "Mais recente",
|
"latest": "Mais recente",
|
||||||
"invertRegEx": "Inverter expressão regular",
|
"invertRegEx": "Inverter expressão regular",
|
||||||
"note": "Observação",
|
"note": "Observação",
|
||||||
|
"selfHostedNote": "O menu de opções \"{}\" pode ser usado para alcançar instâncias hospedadas-por-você/personalizadas de qualquer fonte.",
|
||||||
"badDownload": "O APK não pode ser interpretado (incompatível ou baixado parcialmente)",
|
"badDownload": "O APK não pode ser interpretado (incompatível ou baixado parcialmente)",
|
||||||
"beforeNewInstallsShareToAppVerifier": "Compartilhar apps novos com o AppVerifier (se disponível)",
|
"beforeNewInstallsShareToAppVerifier": "Compartilhar apps novos com o AppVerifier (se disponível)",
|
||||||
"appVerifierInstructionToast": "Compartilhe com o AppVerifier, e volte aqui ao estar pronto.",
|
"appVerifierInstructionToast": "Compartilhe com o AppVerifier, e volte aqui ao estar pronto.",
|
||||||
"wiki": "Ajuda/Wiki",
|
"wiki": "Ajuda/Wiki",
|
||||||
|
"crowdsourcedConfigsLabel": "Configurações de app pela comunidade (use ao seu próprio risco)",
|
||||||
"crowdsourcedConfigsShort": "Configurações de app da comunidade",
|
"crowdsourcedConfigsShort": "Configurações de app da comunidade",
|
||||||
"allowInsecure": "Permitir solicitações de HTTP inseguras",
|
"allowInsecure": "Permitir solicitações de HTTP inseguras",
|
||||||
"stayOneVersionBehind": "Ficar uma versão antes da mais recente",
|
"stayOneVersionBehind": "Ficar uma versão antes da mais recente",
|
||||||
"refreshBeforeDownload": "Atualizar detalhes do app antes de baixar",
|
"refreshBeforeDownload": "Atualizar detalhes do app antes de baixar",
|
||||||
"tencentAppStore": "Loja de Apps da Tencent",
|
"tencentAppStore": "Loja de Apps da Tencent",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Nome",
|
"name": "Nome",
|
||||||
"smartname": "Nome (inteligente)",
|
"smartname": "Nome (inteligente)",
|
||||||
|
"sortMethod": "Método de ordenação",
|
||||||
"welcome": "Boas vindas",
|
"welcome": "Boas vindas",
|
||||||
|
"documentationLinksNote": "A página do Obtainium no GitHub visível abaixo contém links de vídeos, artigos, discussões, e outros recursos que podem te ajudar ao usar o app.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Remover app?",
|
"one": "Remover app?",
|
||||||
"other": "Remover apps?"
|
"other": "Remover apps?"
|
||||||
@ -282,6 +338,10 @@
|
|||||||
"one": "A busca de atualizações em segundo plano encontrou um {}, será agendado uma nova tentativa em {} minuto",
|
"one": "A busca de atualizações em segundo plano encontrou um {}, será agendado uma nova tentativa em {} minuto",
|
||||||
"other": "A busca de atualizações em segundo plano encontrou um {}, será agendado uma nova tentativa em {} minutos"
|
"other": "A busca de atualizações em segundo plano encontrou um {}, será agendado uma nova tentativa em {} minutos"
|
||||||
},
|
},
|
||||||
|
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
|
||||||
|
"one": "BG update checking found {} update - will notify user if needed",
|
||||||
|
"other": "BG update checking found {} updates - will notify user if needed"
|
||||||
|
},
|
||||||
"apps": {
|
"apps": {
|
||||||
"one": "{} app",
|
"one": "{} app",
|
||||||
"other": "{} apps"
|
"other": "{} apps"
|
||||||
@ -302,6 +362,10 @@
|
|||||||
"one": "{} dia",
|
"one": "{} dia",
|
||||||
"other": "{} dias"
|
"other": "{} dias"
|
||||||
},
|
},
|
||||||
|
"clearedNLogsBeforeXAfterY": {
|
||||||
|
"one": "Cleared {n} log (before = {before}, after = {after})",
|
||||||
|
"other": "Cleared {n} logs (before = {before}, after = {after})"
|
||||||
|
},
|
||||||
"xAndNMoreUpdatesAvailable": {
|
"xAndNMoreUpdatesAvailable": {
|
||||||
"one": "{} e mais 1 app têm atualizações.",
|
"one": "{} e mais 1 app têm atualizações.",
|
||||||
"other": "{} e mais {} apps têm atualizações."
|
"other": "{} e mais {} apps têm atualizações."
|
||||||
@ -321,59 +385,5 @@
|
|||||||
"apk": {
|
"apk": {
|
||||||
"one": "{} APK",
|
"one": "{} APK",
|
||||||
"other": "{} APKs"
|
"other": "{} APKs"
|
||||||
},
|
}
|
||||||
"invalidURLForSource": "Não é uma URL de app válida de {}",
|
|
||||||
"noReleaseFound": "Não foi possível encontrar um lançamento adequado",
|
|
||||||
"appIdMismatch": "O ID do pacote baixado não corresponde ao existente",
|
|
||||||
"fallbackToOlderReleases": "Recorrer à lançamentos mais antigos",
|
|
||||||
"dropdownNoOptsError": "ERRO: O MENU DEVE TER PELO MENOS UMA OPÇÃO",
|
|
||||||
"wrongArgNum": "Número errado de argumentos fornecidos",
|
|
||||||
"trackOnlyAppDescription": "As atualizações do app serão rastreadas, mas o Obtainium não baixará ou instalará elas.",
|
|
||||||
"noApps": "Nenhum app",
|
|
||||||
"updateAvailable": "Atualização disponível",
|
|
||||||
"xWillBeRemovedButRemainInstalled": "{} será removido do Obtainium mas continuará instalado no dispositivo.",
|
|
||||||
"markXSelectedAppsAsUpdated": "Marcar os {} apps selecionados como atualizados?",
|
|
||||||
"installStatusOfXWillBeResetExplanation": "Os estados de instalação dos apps selecionados serão redefinidos.\n\nIsso pode ajudar quando a versão exibida no Obtainium está incorreta devido a atualizações malsucedidas ou outros problemas.",
|
|
||||||
"settings": "Configurações",
|
|
||||||
"importFromURLList": "Importar da lista de URLs",
|
|
||||||
"line": "Linha",
|
|
||||||
"importedAppsIdDisclaimer": "Os apps importados podem ser exibidos incorretamente como se não estivessem instalados.\nPara resolver isso, reinstale eles pelo Obtainium.\nIsso não afetará os dados dos apps.\n\nIsso somente afeta a URL e os métodos de importação de terceiros.",
|
|
||||||
"followSystemThemeExplanation": "Só é possível seguir o tema do sistema ao usar aplicativos de terceiros",
|
|
||||||
"appNotFound": "O app não foi encontrado",
|
|
||||||
"updatesAvailableNotifDescription": "Notifica o usuário que atualizações estão disponíveis para um ou mais apps rastreados pelo Obtainium",
|
|
||||||
"xWasUpdatedToY": "{} foi atualizado para a versão {}.",
|
|
||||||
"showWebInAppView": "Mostrar a fonte da pagina web na tela de apps",
|
|
||||||
"deviceSupportsFollowingArchs": "Seu dispositivo suporta as seguintes arquiteturas de CPU:",
|
|
||||||
"errorCheckingUpdatesNotifDescription": "Uma notificação que mostra quando a busca de atualizações em segundo plano falha",
|
|
||||||
"obtainiumMustBeOpenToInstallApps": "O Obtainium precisa estar aberto para instalar apps",
|
|
||||||
"versionCorrectionDisabled": "Correção de versão desativada (o plugin parece não funcionar)",
|
|
||||||
"appWithIdOrNameNotFound": "Nenhum app foi encontrado com aquele ID ou nome",
|
|
||||||
"disableVersionDetection": "Desativar detecção de versão",
|
|
||||||
"noVersionDetectionExplanation": "Essa opção só seve ser usada para apps aonde a detecção de versão não funciona corretamente.",
|
|
||||||
"noCategories": "Nenhuma categoria",
|
|
||||||
"categoryDeleteWarning": "Todos os apps em categorias excluídas ficarão sem categoria.",
|
|
||||||
"uninstallFromDevice": "Desinstalar do dispositivo",
|
|
||||||
"releaseDateAsVersion": "Usar data de lançamento como número da versão",
|
|
||||||
"dontShowAPKOriginWarnings": "Não mostrar alertas de origem dos APKs",
|
|
||||||
"tryInferAppIdFromCode": "Tentar inferir o ID do app pelo código fonte",
|
|
||||||
"checkUpdateOnDetailPage": "Buscar atualizações ao abrir a tela de detalhes de um app",
|
|
||||||
"githubSourceNote": "O limite de taxa do GitHub pode ser evitado ao usar uma chave de API.",
|
|
||||||
"customLinkFilterRegex": "Filtro de link de APK personalizado por expressão regular (padrão '.apk$')",
|
|
||||||
"appsPossiblyUpdatedNotifDescription": "Notifica o usuário que atualizações de um ou mais apps podem ter sido aplicadas em segundo plano",
|
|
||||||
"bgUpdatesOnWiFiOnly": "Desativar atualizações em segundo plano fora do Wi-Fi",
|
|
||||||
"matchGroupToUse": "Corresponder grupo para o uso para a extração do número da versão por ExReg",
|
|
||||||
"filterVersionsByRegEx": "Filtrar versões por expressão regular",
|
|
||||||
"completeAppInstallationNotifChannel": "Concluir instalação do app",
|
|
||||||
"useShizuku": "Usar Shizuku ou Sui para instalação",
|
|
||||||
"useLatestAssetDateAsReleaseDate": "Usar o envio de item mais recente como a data de lançamento",
|
|
||||||
"crowdsourcedConfigsLabel": "Configurações de app pela comunidade (use ao seu próprio risco)",
|
|
||||||
"releaseDateAsVersionExplanation": "Essa opção só deve ser usada para apps quais a detecção de versão não funciona corretamente, mas uma data de lançamento está disponível.",
|
|
||||||
"intermediateLinkRegex": "Filtrar por um link 'intermediário' para visitar",
|
|
||||||
"bgTaskStarted": "Tarefa em segundo plano iniada - verifique os registros.",
|
|
||||||
"skipUpdateNotifications": "Pular notificações de atualização",
|
|
||||||
"selectX": "Selecionar {}",
|
|
||||||
"shizukuOldAndroidWithADB": "Shizuku sendo executado no Android < 8.1 com ADB - atualize o Android ou use o Sui",
|
|
||||||
"selfHostedNote": "O menu de opções \"{}\" pode ser usado para alcançar instâncias hospedadas-por-você/personalizadas de qualquer fonte.",
|
|
||||||
"sortMethod": "Método de ordenação",
|
|
||||||
"documentationLinksNote": "A página do Obtainium no GitHub visível abaixo contém links de vídeos, artigos, discussões, e outros recursos que podem te ajudar ao usar o app."
|
|
||||||
}
|
}
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Manter-se uma versão atrás da mais recente",
|
"stayOneVersionBehind": "Manter-se uma versão atrás da mais recente",
|
||||||
"refreshBeforeDownload": "Atualizar os detalhes da aplicação antes da transferência",
|
"refreshBeforeDownload": "Atualizar os detalhes da aplicação antes da transferência",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Nome",
|
"name": "Nome",
|
||||||
"smartname": "Nome (Smart)",
|
"smartname": "Nome (Smart)",
|
||||||
"sortMethod": "Método de ordenação",
|
"sortMethod": "Método de ordenação",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Не отставайте от последней версии",
|
"stayOneVersionBehind": "Не отставайте от последней версии",
|
||||||
"refreshBeforeDownload": "Обновляйте информацию о приложении перед загрузкой",
|
"refreshBeforeDownload": "Обновляйте информацию о приложении перед загрузкой",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Имя",
|
"name": "Имя",
|
||||||
"smartname": "Имя (умное)",
|
"smartname": "Имя (умное)",
|
||||||
"sortMethod": "Метод сортировки",
|
"sortMethod": "Метод сортировки",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Håll dig en version bakom den senaste",
|
"stayOneVersionBehind": "Håll dig en version bakom den senaste",
|
||||||
"refreshBeforeDownload": "Uppdatera appdetaljerna före nedladdning",
|
"refreshBeforeDownload": "Uppdatera appdetaljerna före nedladdning",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Namn",
|
"name": "Namn",
|
||||||
"smartname": "Namn (Smart)",
|
"smartname": "Namn (Smart)",
|
||||||
"sortMethod": "Sorteringsmetod",
|
"sortMethod": "Sorteringsmetod",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "En son sürümün bir sürüm gerisinde kalın",
|
"stayOneVersionBehind": "En son sürümün bir sürüm gerisinde kalın",
|
||||||
"refreshBeforeDownload": "İndirmeden önce uygulama ayrıntılarını yenileyin",
|
"refreshBeforeDownload": "İndirmeden önce uygulama ayrıntılarını yenileyin",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "İsim",
|
"name": "İsim",
|
||||||
"smartname": "İsim (Akıllı)",
|
"smartname": "İsim (Akıllı)",
|
||||||
"sortMethod": "Sıralama Yöntemi",
|
"sortMethod": "Sıralama Yöntemi",
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "Залишайтеся на одну версію актуальнішою",
|
"stayOneVersionBehind": "Залишайтеся на одну версію актуальнішою",
|
||||||
"refreshBeforeDownload": "Оновіть інформацію про програму перед завантаженням",
|
"refreshBeforeDownload": "Оновіть інформацію про програму перед завантаженням",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Ім'я",
|
"name": "Ім'я",
|
||||||
"smartname": "Ім'я (Smart)",
|
"smartname": "Ім'я (Smart)",
|
||||||
"sortMethod": "Метод сортування",
|
"sortMethod": "Метод сортування",
|
||||||
|
@ -320,11 +320,12 @@
|
|||||||
"stayOneVersionBehind": "Stay one version behind latest",
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"refreshBeforeDownload": "Refresh app details before download",
|
"refreshBeforeDownload": "Refresh app details before download",
|
||||||
"tencentAppStore": "Tencent App Store",
|
"tencentAppStore": "Tencent App Store",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"smartname": "Name (Smart)",
|
"smartname": "Name (Smart)",
|
||||||
"sortMethod": "Sort Method",
|
"sortMethod": "Sort Method",
|
||||||
"welcome": "Welcome",
|
"welcome": "Welcome",
|
||||||
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.",
|
"documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Gỡ ứng dụng?",
|
"one": "Gỡ ứng dụng?",
|
||||||
"other": "Gỡ ứng dụng?"
|
"other": "Gỡ ứng dụng?"
|
||||||
|
@ -320,6 +320,7 @@
|
|||||||
"stayOneVersionBehind": "保持比最新版本落後一個版本",
|
"stayOneVersionBehind": "保持比最新版本落後一個版本",
|
||||||
"refreshBeforeDownload": "下載前刷新應用程式詳細資訊",
|
"refreshBeforeDownload": "下載前刷新應用程式詳細資訊",
|
||||||
"tencentAppStore": "騰訊應用寶",
|
"tencentAppStore": "騰訊應用寶",
|
||||||
|
"coolApk": "CoolApk",
|
||||||
"name": "名稱",
|
"name": "名稱",
|
||||||
"smartname": "名稱(智慧)",
|
"smartname": "名稱(智慧)",
|
||||||
"sortMethod": "排序方式",
|
"sortMethod": "排序方式",
|
||||||
|
@ -154,7 +154,7 @@ String list2FriendlyString(List<String> list) {
|
|||||||
(e.key == list.length - 1
|
(e.key == list.length - 1
|
||||||
? ''
|
? ''
|
||||||
: e.key == list.length - 2
|
: e.key == list.length - 2
|
||||||
? ', and '
|
? ' and '
|
||||||
: ', '))
|
: ', '))
|
||||||
.join('');
|
.join('');
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,8 @@ List<MapEntry<Locale, String>> supportedLocales = const [
|
|||||||
MapEntry(Locale('pl'), 'Polski'),
|
MapEntry(Locale('pl'), 'Polski'),
|
||||||
MapEntry(Locale('ru'), 'Русский'),
|
MapEntry(Locale('ru'), 'Русский'),
|
||||||
MapEntry(Locale('bs'), 'Bosanski'),
|
MapEntry(Locale('bs'), 'Bosanski'),
|
||||||
MapEntry(Locale('pt'), 'Brasileiro'),
|
MapEntry(Locale('pt'), 'Português'),
|
||||||
|
MapEntry(Locale('pt', 'BR'), 'Brasileiro'),
|
||||||
MapEntry(Locale('cs'), 'Česky'),
|
MapEntry(Locale('cs'), 'Česky'),
|
||||||
MapEntry(Locale('sv'), 'Svenska'),
|
MapEntry(Locale('sv'), 'Svenska'),
|
||||||
MapEntry(Locale('nl'), 'Nederlands'),
|
MapEntry(Locale('nl'), 'Nederlands'),
|
||||||
@ -109,11 +110,13 @@ void main() async {
|
|||||||
);
|
);
|
||||||
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
|
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
|
||||||
}
|
}
|
||||||
|
final np = NotificationsProvider();
|
||||||
|
await np.initialize();
|
||||||
runApp(MultiProvider(
|
runApp(MultiProvider(
|
||||||
providers: [
|
providers: [
|
||||||
ChangeNotifierProvider(create: (context) => AppsProvider()),
|
ChangeNotifierProvider(create: (context) => AppsProvider()),
|
||||||
ChangeNotifierProvider(create: (context) => SettingsProvider()),
|
ChangeNotifierProvider(create: (context) => SettingsProvider()),
|
||||||
Provider(create: (context) => NotificationsProvider()),
|
Provider(create: (context) => np),
|
||||||
Provider(create: (context) => LogsProvider())
|
Provider(create: (context) => LogsProvider())
|
||||||
],
|
],
|
||||||
child: EasyLocalization(
|
child: EasyLocalization(
|
||||||
@ -168,6 +171,7 @@ class _ObtainiumState extends State<Obtainium> {
|
|||||||
SettingsProvider settingsProvider = context.watch<SettingsProvider>();
|
SettingsProvider settingsProvider = context.watch<SettingsProvider>();
|
||||||
AppsProvider appsProvider = context.read<AppsProvider>();
|
AppsProvider appsProvider = context.read<AppsProvider>();
|
||||||
LogsProvider logs = context.read<LogsProvider>();
|
LogsProvider logs = context.read<LogsProvider>();
|
||||||
|
NotificationsProvider notifs = context.read<NotificationsProvider>();
|
||||||
|
|
||||||
if (settingsProvider.prefs == null) {
|
if (settingsProvider.prefs == null) {
|
||||||
settingsProvider.initializeSettings();
|
settingsProvider.initializeSettings();
|
||||||
@ -211,6 +215,10 @@ class _ObtainiumState extends State<Obtainium> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
notifs.checkLaunchByNotif();
|
||||||
|
});
|
||||||
|
|
||||||
return DynamicColorBuilder(
|
return DynamicColorBuilder(
|
||||||
builder: (ColorScheme? lightDynamic, ColorScheme? darkDynamic) {
|
builder: (ColorScheme? lightDynamic, ColorScheme? darkDynamic) {
|
||||||
// Decide on a colour/brightness scheme based on OS and user settings
|
// Decide on a colour/brightness scheme based on OS and user settings
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
// Contains a set of pre-defined ObtainiumNotification objects that should be used throughout the app
|
// Contains a set of pre-defined ObtainiumNotification objects that should be used throughout the app
|
||||||
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
|
import 'package:obtainium/main.dart';
|
||||||
import 'package:obtainium/providers/settings_provider.dart';
|
import 'package:obtainium/providers/settings_provider.dart';
|
||||||
import 'package:obtainium/providers/source_provider.dart';
|
import 'package:obtainium/providers/source_provider.dart';
|
||||||
|
|
||||||
@ -16,10 +18,11 @@ class ObtainiumNotification {
|
|||||||
Importance importance;
|
Importance importance;
|
||||||
int? progPercent;
|
int? progPercent;
|
||||||
bool onlyAlertOnce;
|
bool onlyAlertOnce;
|
||||||
|
String? payload;
|
||||||
|
|
||||||
ObtainiumNotification(this.id, this.title, this.message, this.channelCode,
|
ObtainiumNotification(this.id, this.title, this.message, this.channelCode,
|
||||||
this.channelName, this.channelDescription, this.importance,
|
this.channelName, this.channelDescription, this.importance,
|
||||||
{this.onlyAlertOnce = false, this.progPercent});
|
{this.onlyAlertOnce = false, this.progPercent, this.payload});
|
||||||
}
|
}
|
||||||
|
|
||||||
class UpdateNotification extends ObtainiumNotification {
|
class UpdateNotification extends ObtainiumNotification {
|
||||||
@ -88,7 +91,8 @@ class ErrorCheckingUpdatesNotification extends ObtainiumNotification {
|
|||||||
'BG_UPDATE_CHECK_ERROR',
|
'BG_UPDATE_CHECK_ERROR',
|
||||||
tr('errorCheckingUpdatesNotifChannel'),
|
tr('errorCheckingUpdatesNotifChannel'),
|
||||||
tr('errorCheckingUpdatesNotifDescription'),
|
tr('errorCheckingUpdatesNotifDescription'),
|
||||||
Importance.high);
|
Importance.high,
|
||||||
|
payload: "${tr('errorCheckingUpdates')}\n$error");
|
||||||
}
|
}
|
||||||
|
|
||||||
class AppsRemovedNotification extends ObtainiumNotification {
|
class AppsRemovedNotification extends ObtainiumNotification {
|
||||||
@ -173,11 +177,48 @@ class NotificationsProvider {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Future<void> initialize() async {
|
Future<void> initialize() async {
|
||||||
isInitialized = await notifications.initialize(const InitializationSettings(
|
isInitialized = await notifications.initialize(
|
||||||
android: AndroidInitializationSettings('ic_notification'))) ??
|
const InitializationSettings(
|
||||||
|
android: AndroidInitializationSettings('ic_notification')),
|
||||||
|
onDidReceiveNotificationResponse: (NotificationResponse response) {
|
||||||
|
_showNotificationPayload(response.payload);
|
||||||
|
},
|
||||||
|
) ??
|
||||||
false;
|
false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkLaunchByNotif() async {
|
||||||
|
final NotificationAppLaunchDetails? launchDetails =
|
||||||
|
await notifications.getNotificationAppLaunchDetails();
|
||||||
|
if (launchDetails?.didNotificationLaunchApp ?? false) {
|
||||||
|
_showNotificationPayload(launchDetails!.notificationResponse?.payload,
|
||||||
|
doublePop: true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_showNotificationPayload(String? payload, {bool doublePop = false}) {
|
||||||
|
var title = (payload ?? '\n\n').split('\n').first;
|
||||||
|
var content = (payload ?? '\n\n').split('\n').sublist(1).join('\n');
|
||||||
|
globalNavigatorKey.currentState?.push(
|
||||||
|
PageRouteBuilder(
|
||||||
|
pageBuilder: (context, _, __) => AlertDialog(
|
||||||
|
title: Text(title),
|
||||||
|
content: Text(content),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(context).pop(null);
|
||||||
|
if (doublePop) {
|
||||||
|
Navigator.of(context).pop(null);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: Text(tr('ok'))),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> cancel(int id) async {
|
Future<void> cancel(int id) async {
|
||||||
if (!isInitialized) {
|
if (!isInitialized) {
|
||||||
await initialize();
|
await initialize();
|
||||||
@ -195,7 +236,8 @@ class NotificationsProvider {
|
|||||||
Importance importance,
|
Importance importance,
|
||||||
{bool cancelExisting = false,
|
{bool cancelExisting = false,
|
||||||
int? progPercent,
|
int? progPercent,
|
||||||
bool onlyAlertOnce = false}) async {
|
bool onlyAlertOnce = false,
|
||||||
|
String? payload}) async {
|
||||||
if (cancelExisting) {
|
if (cancelExisting) {
|
||||||
await cancel(id);
|
await cancel(id);
|
||||||
}
|
}
|
||||||
@ -216,7 +258,8 @@ class NotificationsProvider {
|
|||||||
maxProgress: 100,
|
maxProgress: 100,
|
||||||
showProgress: progPercent != null,
|
showProgress: progPercent != null,
|
||||||
onlyAlertOnce: onlyAlertOnce,
|
onlyAlertOnce: onlyAlertOnce,
|
||||||
indeterminate: progPercent != null && progPercent < 0)));
|
indeterminate: progPercent != null && progPercent < 0)),
|
||||||
|
payload: payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> notify(ObtainiumNotification notif,
|
Future<void> notify(ObtainiumNotification notif,
|
||||||
@ -225,5 +268,6 @@ class NotificationsProvider {
|
|||||||
notif.channelName, notif.channelDescription, notif.importance,
|
notif.channelName, notif.channelDescription, notif.importance,
|
||||||
cancelExisting: cancelExisting,
|
cancelExisting: cancelExisting,
|
||||||
onlyAlertOnce: notif.onlyAlertOnce,
|
onlyAlertOnce: notif.onlyAlertOnce,
|
||||||
progPercent: notif.progPercent);
|
progPercent: notif.progPercent,
|
||||||
|
payload: notif.payload);
|
||||||
}
|
}
|
||||||
|
48
pubspec.lock
48
pubspec.lock
@ -80,10 +80,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: archive
|
name: archive
|
||||||
sha256: "7dcbd0f87fe5f61cb28da39a1a8b70dbc106e2fe0516f7836eb7bb2948481a12"
|
sha256: a7f37ff061d7abc2fcf213554b9dcaca713c5853afa5c065c44888bc9ccaf813
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.5"
|
version: "4.0.6"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -312,10 +312,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: file_picker
|
name: file_picker
|
||||||
sha256: "36a1652d99cb6bf8ccc8b9f43aded1fd60b234d23ce78af422c07f950a436ef7"
|
sha256: "8986dec4581b4bcd4b6df5d75a2ea0bede3db802f500635d05fa8be298f9467f"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.0"
|
version: "10.1.2"
|
||||||
fixnum:
|
fixnum:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -564,10 +564,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: html
|
name: html
|
||||||
sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec"
|
sha256: "9475be233c437f0e3637af55e7702cbbe5c23a68bd56e8a5fa2d426297b7c6c8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.15.5"
|
version: "0.15.5+1"
|
||||||
http:
|
http:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -756,26 +756,26 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: permission_handler
|
name: permission_handler
|
||||||
sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849"
|
sha256: "2d070d8684b68efb580a5997eb62f675e8a885ef0be6e754fb9ef489c177470f"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "11.4.0"
|
version: "12.0.0+1"
|
||||||
permission_handler_android:
|
permission_handler_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: permission_handler_android
|
name: permission_handler_android
|
||||||
sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc
|
sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "12.1.0"
|
version: "13.0.1"
|
||||||
permission_handler_apple:
|
permission_handler_apple:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: permission_handler_apple
|
name: permission_handler_apple
|
||||||
sha256: f84a188e79a35c687c132a0a0556c254747a08561e99ab933f12f6ca71ef3c98
|
sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.4.6"
|
version: "9.4.7"
|
||||||
permission_handler_html:
|
permission_handler_html:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -860,10 +860,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: posix
|
name: posix
|
||||||
sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a
|
sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.1"
|
version: "6.0.2"
|
||||||
provider:
|
provider:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -900,10 +900,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_android
|
name: shared_preferences_android
|
||||||
sha256: "3ec7210872c4ba945e3244982918e502fa2bfb5230dff6832459ca0e1879b7ad"
|
sha256: c2c8c46297b5d6a80bed7741ec1f2759742c77d272f1a1698176ae828f8e1a18
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.8"
|
version: "2.4.9"
|
||||||
shared_preferences_foundation:
|
shared_preferences_foundation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -1195,34 +1195,34 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: webview_flutter
|
name: webview_flutter
|
||||||
sha256: "889a0a678e7c793c308c68739996227c9661590605e70b1f6cf6b9a6634f7aec"
|
sha256: caf0f5a1012aa3c2d33c4215adc72dc1194bb59a2d3ed901f457965626805e66
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.10.0"
|
version: "4.11.0"
|
||||||
webview_flutter_android:
|
webview_flutter_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_android
|
name: webview_flutter_android
|
||||||
sha256: e09150b28a07933839adef0e4a088bb43e8c8d9e6b93025b01882d4067a58ab0
|
sha256: "3315f1306eb22f98c48fe203fb8a448fb23f9e49d55a4da6e17ab7d795774166"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.3.4"
|
version: "4.4.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: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d
|
sha256: "18b1640839cf6546784a524c72aded5b6e86b23e7167dc2311cc96f7658b64bd"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.10.0"
|
version: "2.11.0"
|
||||||
webview_flutter_wkwebview:
|
webview_flutter_wkwebview:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_wkwebview
|
name: webview_flutter_wkwebview
|
||||||
sha256: c14455137ce60a68e1ccaf4e8f2dae8cebcb3465ddaa2fcfb57584fb7c5afe4d
|
sha256: c9f9be526fa0d3347374ceaa05c4b3acb85f4f112abd62f7d74b7d301fa515ff
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.18.5"
|
version: "3.20.0"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -16,7 +16,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: 1.1.49+2306
|
version: 1.1.50+2307
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.6.0
|
sdk: ^3.6.0
|
||||||
@ -44,7 +44,7 @@ dependencies:
|
|||||||
html: ^0.15.0
|
html: ^0.15.0
|
||||||
shared_preferences: ^2.0.15
|
shared_preferences: ^2.0.15
|
||||||
url_launcher: ^6.1.5
|
url_launcher: ^6.1.5
|
||||||
permission_handler: ^11.0.0
|
permission_handler: ^12.0.0+1
|
||||||
fluttertoast: ^8.0.9
|
fluttertoast: ^8.0.9
|
||||||
device_info_plus: ^11.0.0
|
device_info_plus: ^11.0.0
|
||||||
file_picker: ^10.0.0
|
file_picker: ^10.0.0
|
||||||
|
Reference in New Issue
Block a user