From d92e8125547482c0ddddafb6b66216abe17527d7 Mon Sep 17 00:00:00 2001 From: LucasTavaresA Date: Sun, 27 Aug 2023 18:25:26 -0300 Subject: [PATCH] Add brasilian translation --- assets/translations/br.json | 303 ++++++++++++++++++++++++++++++++++++ lib/main.dart | 1 + 2 files changed, 304 insertions(+) create mode 100644 assets/translations/br.json diff --git a/assets/translations/br.json b/assets/translations/br.json new file mode 100644 index 0000000..e7e828a --- /dev/null +++ b/assets/translations/br.json @@ -0,0 +1,303 @@ +{ + "invalidURLForSource": "URL {} inválida", + "noReleaseFound": "Não foi possivel encontrar uma versão adequada", + "noVersionFound": "Não foi possivel encontrar uma versão lançada", + "urlMatchesNoSource": "URL não corresponde a uma fonte conhecida", + "cantInstallOlderVersion": "Não pode instalar uma versão anterior de um App", + "appIdMismatch": "ID do pacote baixado não é igual ao ID do App instalado", + "functionNotImplemented": "Esta classe não implementou essa função", + "placeholder": "Espaço Reservado", + "someErrors": "Alguns Erros Ocorreram", + "unexpectedError": "Erro Inesperado", + "ok": "Ok", + "and": "e", + "githubPATLabel": "Token de Acceso Pessoal do GitHub (Reduz tempos de espera)", + "githubPATHint": "O TAP deve estar nesse formato: usuario:token", + "githubPATFormat": "usuario:token", + "includePrereleases": "Incluir pré-lançamentos", + "fallbackToOlderReleases": "Retornar para versões anteriores", + "filterReleaseTitlesByRegEx": "Filtrar Titulos de Versões por Expressão Regular", + "invalidRegEx": "Expressão Regular Inválida", + "noDescription": "Sem descrição", + "cancel": "Cancelar", + "continue": "Continuar", + "requiredInBrackets": "(Necessário)", + "dropdownNoOptsError": "ERRO: O DROPDOWN DEVE TER PELO MENOS UMA OPÇÃO", + "colour": "Cor", + "githubStarredRepos": "Favoritados no GitHub", + "uname": "Nome de usuário", + "wrongArgNum": "Número de argumentos errado", + "xIsTrackOnly": "{} é 'Apenas Seguir'", + "source": "Fonte", + "app": "App", + "appsFromSourceAreTrackOnly": "Os apps desta fonte são 'Apenas Seguir'.", + "youPickedTrackOnly": "Você selecionou a opção 'Apenas Seguir'.", + "trackOnlyAppDescription": "Esse App vai ser seguido por atualizações, mais o Obtainium não poderá baixa-lo ou instala-lo.", + "cancelled": "Cancelado", + "appAlreadyAdded": "App já adicionado", + "alreadyUpToDateQuestion": "App já atualizado?", + "addApp": "Adicionar App", + "appSourceURL": "URL de origem do App", + "error": "Erro", + "add": "Adicionar", + "searchSomeSourcesLabel": "Procurar (Apenas Algumas Fontes)", + "search": "Procurar", + "additionalOptsFor": "Opções Adicionais para {}", + "supportedSourcesBelow": "Fontes Compatíveis:", + "trackOnlyInBrackets": "(Apenas Seguir)", + "searchableInBrackets": "(Pesquisável)", + "appsString": "Apps", + "noApps": "Sem Apps", + "noAppsForFilter": "Sem Apps para Filtrar", + "byX": "Por {}", + "percentProgress": "Progresso: {}%", + "pleaseWait": "Por Favor Espere", + "updateAvailable": "Atualização Disponível", + "estimateInBracketsShort": "(Aprox.)", + "notInstalled": "Não Instalado", + "estimateInBrackets": "(Aproximado)", + "selectAll": "Selecionar All", + "deselectN": "Deselecionar {}", + "xWillBeRemovedButRemainInstalled": "{} sera removido do Obtainium mais permanecerá instalado no dispositivo.", + "removeSelectedAppsQuestion": "Remover Apps Selecionados?", + "removeSelectedApps": "Remover Apps Selecionados", + "updateX": "Atualizar {}", + "installX": "Instalar {}", + "markXTrackOnlyAsUpdated": "Marcar {}\n(Apenas Seguir)\ncomo Atualizado", + "changeX": "Mudar {}", + "installUpdateApps": "Instalar/Atualizar Apps", + "installUpdateSelectedApps": "Instalar/Atualizar Apps Selecionados", + "markXSelectedAppsAsUpdated": "Marcar {} Apps Delecionados como Atualizados?", + "no": "Não", + "yes": "Sim", + "markSelectedAppsUpdated": "Marcar Apps Selecionados como Atualizados", + "pinToTop": "Fixar no topo", + "unpinFromTop": "Desafixar do topo", + "resetInstallStatusForSelectedAppsQuestion": "Reiniciar Status de Instalação para Apps Seleciondos?", + "installStatusOfXWillBeResetExplanation": "O status de instalação de qualquer app selecionado sera reiniciado.\n\nIsso pode ajudar quando uma versão de um App mostrada no Obtainium é incorreta devido a falhas ao atualizar ou outros problemas.", + "shareSelectedAppURLs": "Compartilhar URLs de Apps Selecionados", + "resetInstallStatus": "Reiniciar Status de Instalação", + "more": "Mais", + "removeOutdatedFilter": "Remover Filtro de Apps Desatualizados", + "showOutdatedOnly": "Mostrar Apenas Apps Desatualizados", + "filter": "Filtro", + "filterActive": "Filtro *", + "filterApps": "Filtrar Apps", + "appName": "Nome do App", + "author": "Autor", + "upToDateApps": "Apps Atualizados", + "nonInstalledApps": "Apps Não Instalados", + "importExport": "Importar/Exportar", + "settings": "Configurações", + "exportedTo": "Exportado para {}", + "obtainiumExport": "Exportar Obtainium", + "invalidInput": "Input Inválido", + "importedX": "Importado {}", + "obtainiumImport": "Importar Obtainium", + "importFromURLList": "Importar de Lista de URLs", + "searchQuery": "Pesquisa", + "appURLList": "Lista de URLs de Apps", + "line": "Linha", + "searchX": "Pesquisa {}", + "noResults": "Nenhum resultado encontrado", + "importX": "Importar {}", + "importedAppsIdDisclaimer": "Apps Importados podem ser mostrados incorretamente como \"Não Instalado\".\nPara consertar, reinstale-os usando o Obtainium.\nIsso não deve afetar dados do App.\n\nAfeta apenas métodos de importação de URL e de terceiros.", + "importErrors": "Erros de Importação", + "importedXOfYApps": "{} de {} Apps importados.", + "followingURLsHadErrors": "As seguintes URLs apresentaram erros:", + "okay": "Ok", + "selectURL": "Selecionar URL", + "selectURLs": "Selecionar URLs", + "pick": "Escolher", + "theme": "Tema", + "dark": "Escuro", + "light": "Claro", + "followSystem": "Seguir o Sistema", + "obtainium": "Obtainium", + "materialYou": "Material You", + "useBlackTheme": "Usar tema preto completamente escuro", + "appSortBy": "Classificar App por", + "authorName": "Autor/Nome", + "nameAuthor": "Nome/Autor", + "asAdded": "Como Adicionado", + "appSortOrder": "Ordem de classificação de Apps", + "ascending": "Ascendente", + "descending": "Descendente", + "bgUpdateCheckInterval": "Intervalo de verificação de atualizações em segundo plano", + "neverManualOnly": "Nunca - Apenas Manual", + "appearance": "Aparência", + "showWebInAppView": "Mostrar páginas da internet em App view", + "pinUpdates": "Fixar atualizações no topo da visão de Apps", + "updates": "Atualizações", + "sourceSpecific": "Específico a fonte", + "appSource": "Fonte de Apps", + "noLogs": "Sem Logs", + "appLogs": "Logs do App", + "close": "Fechar", + "share": "Compartilhar", + "appNotFound": "App não encontrado", + "obtainiumExportHyphenatedLowercase": "obtainium-export", + "pickAnAPK": "Selecionar um APK", + "appHasMoreThanOnePackage": "{} tem mais de um pacote:", + "deviceSupportsXArch": "Seu dispositivo suporta a arquitetura de CPU {}.", + "deviceSupportsFollowingArchs": "Seu dispositivo suporta as seguintes arquiteturas de CPU:", + "warning": "Aviso", + "sourceIsXButPackageFromYPrompt": "A Fonte do App é '{}' mais o pacote lançado vem de '{}'. Continuar?", + "updatesAvailable": "Atualizações Disponíveis", + "updatesAvailableNotifDescription": "Notifica o usuário quando atualizações estão disponíveis um ou mais Apps seguidos pelo Obtainium", + "noNewUpdates": "Sem novas atualizações.", + "xHasAnUpdate": "{} tem uma atualização.", + "appsUpdated": "Apps Atualizados", + "appsUpdatedNotifDescription": "Notifica o usuário quando atualizações para um ou mais Apps foram aplicadas em segundo plano", + "xWasUpdatedToY": "{} foi atualizado para {}.", + "errorCheckingUpdates": "Erro ao Procurar por Atualizações", + "errorCheckingUpdatesNotifDescription": "Uma notificação que mostra quando a checagem por atualizações em segundo plano falha", + "appsRemoved": "Apps Removidos", + "appsRemovedNotifDescription": "Notifica o usuário quando um ou mais Apps foram removidos devido a erros ao carregá-los", + "xWasRemovedDueToErrorY": "{} foi removido devido a este erro: {}", + "completeAppInstallation": "Instalação completa do App", + "obtainiumMustBeOpenToInstallApps": "Obtainium deve estar aberto para instalar Apps", + "completeAppInstallationNotifDescription": "Pede ao usuário que retorne ao Obtainium para finalizar a instalação de um App", + "checkingForUpdates": "Checando por Atualizações", + "checkingForUpdatesNotifDescription": "Notificação transiente que aparece quando checando por atualizações", + "pleaseAllowInstallPerm": "Por favor, permita o Obtainium instalar Apps", + "trackOnly": "Apenas Seguir", + "errorWithHttpStatusCode": "Erro {}", + "versionCorrectionDisabled": "Correção de versão desativada (plugin parece não funcionar)", + "unknown": "Desconhecido", + "none": "Nenhum", + "never": "Nunca", + "latestVersionX": "Última versão: {}", + "installedVersionX": "Versão Instalada: {}", + "lastUpdateCheckX": "Última Checagem por Atualização: {}", + "remove": "Remover", + "yesMarkUpdated": "Sim, Marcar como Atualizado", + "fdroid": "F-Droid Official", + "appIdOrName": "ID do App ou Nome", + "appId": "ID do App", + "appWithIdOrNameNotFound": "Nenhum App foi encontrado com esse ID ou nome", + "reposHaveMultipleApps": "Repositórios podem conter multiplos Apps", + "fdroidThirdPartyRepo": "Repositórios de terceiros F-Droid", + "steam": "Steam", + "steamMobile": "Steam Mobile", + "steamChat": "Steam Chat", + "install": "Instalar", + "markInstalled": "Marcar Instalado", + "update": "Atualizar", + "markUpdated": "Marcar Atualizado", + "additionalOptions": "Opções Adicionais", + "disableVersionDetection": "Desativar Detecção de Versão", + "noVersionDetectionExplanation": "Essa opção deve apenas ser usada por Apps onde detecção de versão não funciona corretamente.", + "downloadingX": "Baixando {}", + "downloadNotifDescription": "Notifica o usuário do progresso ao baixar um App", + "noAPKFound": "APK não encontrado", + "noVersionDetection": "Sem Detecção de versão", + "categorize": "Categorizar", + "categories": "Categorias", + "category": "Categoria", + "noCategory": "Sem Categoria", + "noCategories": "Sem Categoria", + "deleteCategoriesQuestion": "Deletar Categorias?", + "categoryDeleteWarning": "Todos os Apps em categorias removidas serão descategorizados.", + "addCategory": "Adicionar Categoria", + "label": "Etiqueta", + "language": "Linguagem", + "copiedToClipboard": "Copiado para a área de transferência", + "storagePermissionDenied": "Permição ao armazenamento negada", + "selectedCategorizeWarning": "Isso vai substituir qualquer confirução de categoria para os Apps selecionados.", + "filterAPKsByRegEx": "Filtrar APKs por Expressão Regular", + "removeFromObtainium": "Remover do Obtainium", + "uninstallFromDevice": "Desinstalar do dispositivo", + "onlyWorksWithNonVersionDetectApps": "Apenas funciona para Apps com detecção de versão desativada.", + "releaseDateAsVersion": "Usar Data de Lançamento como Versão", + "releaseDateAsVersionExplanation": "Esta opção só deve ser usada para aplicativos onde a detecção de versão não funciona corretamente, mas há uma data de lançamento disponível.", + "changes": "Mudanças", + "releaseDate": "Data de Lançamento", + "importFromURLsInFile": "Importar de URLs em Arquivo (como OPML)", + "versionDetection": "Detecção de Versão", + "standardVersionDetection": "Detecção de versão padrão", + "groupByCategory": "Agroupar por Categoria", + "autoApkFilterByArch": "Tente filtrar APKs por arquitetura de CPU, se possível", + "overrideSource": "Substituir Fonte", + "dontShowAgain": "Não mostrar isso novamente", + "dontShowTrackOnlyWarnings": "Não mostrar avisos 'Apenas Seguir'", + "dontShowAPKOriginWarnings": "Não mostrar avisos de origem da APK", + "moveNonInstalledAppsToBottom": "Mover Apps não instalados para o fundo da visão de Apps", + "gitlabPATLabel": "Token de Acceso Pessoal do Gitlab\n(Ativa Pesquisa e Melhor Descoberta de APKs)", + "about": "Sobre", + "requiresCredentialsInSettings": "Isso requer credenciais adicionais (em Configurações)", + "checkOnStart": "Checar por atualizações ao iniciar ", + "tryInferAppIdFromCode": "Tente inferir o ID do App pelo código fonte", + "removeOnExternalUninstall": "Remover automaticamente Apps desinstalados externamente", + "pickHighestVersionCode": "Auto-selecionar o maior numero de versão do APK", + "checkUpdateOnDetailPage": "Checar por atualizações ao abrir a pagina de detalhes de um App", + "disablePageTransitions": "Desativar animações de transição de pagina", + "reversePageTransitions": "Reverter animações de transição de pagina", + "minStarCount": "Contagem Minima de Estrelas", + "addInfoBelow": "Adicionar essa informação abaixo.", + "addInfoInSettings": "Adicionar essa informação nas configurações.", + "githubSourceNote": "A limitação de taxa do GitHub pode ser evitada usando uma chave de API.", + "gitlabSourceNote": "A extração de APK do GitLab pode não funcionar sem uma chave de API.", + "sortByFileNamesNotLinks": "Classifique por nomes de arquivos em vez de links completos", + "filterReleaseNotesByRegEx": "Filtrar Notas de Lançamento por Expressão Regular", + "customLinkFilterRegex": "Filtro de Link Personalizado por Expressão Regular (Padrão '.apk$')", + "appsPossiblyUpdated": "Tentativas de atualização de Apps", + "appsPossiblyUpdatedNotifDescription": "Notifica o usuário de que atualizações de um ou mais Apps foram potencialmente aplicadas em segundo plano", + "xWasPossiblyUpdatedToY": "{} pode ter sido atualizado para {}.", + "enableBackgroundUpdates": "Ativar atualizações em segundo plano", + "backgroundUpdateReqsExplanation": "Atualizações em segundo plano podem não ser possíveis para todos os Apps.", + "backgroundUpdateLimitsExplanation": "O sucesso de uma instalação em segundo plano só pode ser determinado quando o Obtainium é aberto.", + "verifyLatestTag": "Verifique a 'ultima' etiqueta", + "removeAppQuestion": { + "one": "Remover App?", + "other": "Remover Apps?" + }, + "tooManyRequestsTryAgainInMinutes": { + "one": "Muitas solicitações (taxa limitada) - tente novamente em {} minuto", + "other": "Muitas solicitações (taxa limitada) - tente novamente em {} minutos", + }, + "bgUpdateGotErrorRetryInMinutes": { + "one": "A verificação de atualizações em segundo plano encontrou um {}, agendada uma nova verificação em {} minuto", + "other": "A verificação de atualizações em segundo plano encontrou um {}, agendada uma nova verificação em {} minutos" + }, + "bgCheckFoundUpdatesWillNotifyIfNeeded": { + "one": "A verificação de atualizações em segundo plano encontrou {} atualização, o usuário sera notificado caso necessário", + "other": "A verificação de atualizações em segundo plano encontrou {} atualizações, o usuário sera notificado caso necessário" + }, + "apps": { + "one": "{} App", + "other": "{} Apps" + }, + "url": { + "one": "{} URL", + "other": "{} URLs" + }, + "minute": { + "one": "{} Minuto", + "other": "{} Minutos" + }, + "hour": { + "one": "{} Hora", + "other": "{} Horas" + }, + "day": { + "one": "{} Dia", + "other": "{} Dias" + }, + "clearedNLogsBeforeXAfterY": { + "one": "Limpo {n} log (antes = {antes}, depois = {depois})", + "other": "Limpados {n} logs (antes = {antes}, depois = {depois})" + }, + "xAndNMoreUpdatesAvailable": { + "one": "{} e 1 outro app tem atualizações.", + "other": "{} e {} outros apps tem atualizações." + }, + "xAndNMoreUpdatesInstalled": { + "one": "{} e 1 outro app foi atualizado.", + "other": "{} e {} outros apps foram atualizados." + }, + "xAndNMoreUpdatesPossiblyInstalled": { + "one": "{} e 1 outro app pode ter sido atualizado.", + "other": "{} e {} outros apps podem ter sido atualizados." + } +} diff --git a/lib/main.dart b/lib/main.dart index 594dc7c..4570ff9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -38,6 +38,7 @@ List> supportedLocales = const [ MapEntry(Locale('pl'), 'Polski'), MapEntry(Locale('ru'), 'Русский язык'), MapEntry(Locale('bs'), 'Bosanski'), + MapEntry(Locale('br'), 'Brasileiro'), ]; const fallbackLocale = Locale('en'); const localeDir = 'assets/translations';