diff --git a/CHANGELOG.md b/CHANGELOG.md
index 006314a32..6a0ee25fb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
+### Added
+
+- Portuguese translation (thanks Jonatas De Almeida Barros)
+
## [v1.5.10] - 2022-01-07
### Added
diff --git a/android/app/src/main/res/values-pt/strings.xml b/android/app/src/main/res/values-pt/strings.xml
new file mode 100644
index 000000000..336c769db
--- /dev/null
+++ b/android/app/src/main/res/values-pt/strings.xml
@@ -0,0 +1,10 @@
+
+
+ Aves
+ Procurar
+ Vídeos
+ Digitalização de mídia
+ Digitalizar imagens & vídeos
+ Digitalizando mídia
+ Pare
+
diff --git a/fastlane/metadata/android/fr/images/featureGraphic.png b/fastlane/metadata/android/fr/images/featureGraphic.png
new file mode 100644
index 000000000..a0b3a3e77
Binary files /dev/null and b/fastlane/metadata/android/fr/images/featureGraphic.png differ
diff --git a/fastlane/metadata/android/ko/images/featureGraphics.png b/fastlane/metadata/android/ko/images/featureGraphics.png
new file mode 100644
index 000000000..cb81a914d
Binary files /dev/null and b/fastlane/metadata/android/ko/images/featureGraphics.png differ
diff --git a/fastlane/metadata/android/pt-BR/full_description.txt b/fastlane/metadata/android/pt-BR/full_description.txt
new file mode 100644
index 000000000..7438bc528
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/full_description.txt
@@ -0,0 +1,5 @@
+Aves pode lidar com todos os tipos de imagens e vídeos, incluindo seus típicos JPEGs e MP4s, mas também coisas mais exóticas como páginas múltiplas TIFFs, SVGs, AVIs antigos e muito mais! Ele verifica sua coleção de mídia para identificar fotos em movimento, panoramas (aka photo spheres), vídeos em 360°, assim como GeoTIFF arquivos.
+
+Navegação e pesquisa é uma parte importante do Aves. O objetivo é que os usuários fluam facilmente de álbuns para fotos, etiquetas, mapas, etc.
+
+Aves integra com Android (de API 19 para 31, i.e. de KitKat para S) com recursos como atalhos de apps e pesquisa global manipulação. Também funciona como um visualizador e selecionador de mídia.
diff --git a/fastlane/metadata/android/pt-BR/images/featureGraphics.png b/fastlane/metadata/android/pt-BR/images/featureGraphics.png
new file mode 100644
index 000000000..677f87431
Binary files /dev/null and b/fastlane/metadata/android/pt-BR/images/featureGraphics.png differ
diff --git a/fastlane/metadata/android/pt-BR/short_description.txt b/fastlane/metadata/android/pt-BR/short_description.txt
new file mode 100644
index 000000000..df48f8c44
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/short_description.txt
@@ -0,0 +1 @@
+Galeria e explorador de metadados
diff --git a/fastlane/metadata/android/ru/images/featureGraphics.png b/fastlane/metadata/android/ru/images/featureGraphics.png
new file mode 100644
index 000000000..5fa1a582a
Binary files /dev/null and b/fastlane/metadata/android/ru/images/featureGraphics.png differ
diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb
index 867ecab0d..42b169247 100644
--- a/lib/l10n/app_de.arb
+++ b/lib/l10n/app_de.arb
@@ -111,7 +111,7 @@
"mapStyleGoogleTerrain": "Google Maps (Gelände)",
"mapStyleOsmHot": "Humanitäres OSM",
"mapStyleStamenToner": "Stamen Toner (SchwarzWeiß)",
- "mapStyleStamenWatercolor": "Stamen Aquarell",
+ "mapStyleStamenWatercolor": "Stamen Watercolor (Aquarell)",
"nameConflictStrategyRename": "Umbenennen",
"nameConflictStrategyReplace": "Ersetzen Sie",
diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb
index a4b3ac6a8..796241878 100644
--- a/lib/l10n/app_en.arb
+++ b/lib/l10n/app_en.arb
@@ -708,6 +708,5 @@
"filePickerDoNotShowHiddenFiles": "Don’t show hidden files",
"filePickerOpenFrom": "Open from",
"filePickerNoItems": "No items",
- "filePickerUseThisFolder": "Use this folder",
- "@filePickerUseThisFolder": {}
+ "filePickerUseThisFolder": "Use this folder"
}
diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb
index bd63301e2..4ab87bc60 100644
--- a/lib/l10n/app_es.arb
+++ b/lib/l10n/app_es.arb
@@ -110,8 +110,8 @@
"mapStyleGoogleHybrid": "Mapas de Google (Híbrido)",
"mapStyleGoogleTerrain": "Mapas de Google (Superficie)",
"mapStyleOsmHot": "OSM Humanitario",
- "mapStyleStamenToner": "Stamen Monocromático (Toner)",
- "mapStyleStamenWatercolor": "Stamen Acuarela (Watercolor)",
+ "mapStyleStamenToner": "Stamen Toner (Monocromático)",
+ "mapStyleStamenWatercolor": "Stamen Watercolor (Acuarela)",
"nameConflictStrategyRename": "Renombrar",
"nameConflictStrategyReplace": "Reemplazar",
@@ -535,6 +535,5 @@
"filePickerDoNotShowHiddenFiles": "No mostrar archivos ocultos",
"filePickerOpenFrom": "Abrir desde",
"filePickerNoItems": "Sin elementos",
- "filePickerUseThisFolder": "Usar esta carpeta",
- "@filePickerUseThisFolder": {}
+ "filePickerUseThisFolder": "Usar esta carpeta"
}
diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb
index 701a808e8..16cfef726 100644
--- a/lib/l10n/app_fr.arb
+++ b/lib/l10n/app_fr.arb
@@ -110,8 +110,8 @@
"mapStyleGoogleHybrid": "Google Maps (Satellite)",
"mapStyleGoogleTerrain": "Google Maps (Relief)",
"mapStyleOsmHot": "OSM Humanitaire",
- "mapStyleStamenToner": "Stamen Toner",
- "mapStyleStamenWatercolor": "Stamen Watercolor",
+ "mapStyleStamenToner": "Stamen Toner (Monochrome)",
+ "mapStyleStamenWatercolor": "Stamen Watercolor (Aquarelle)",
"nameConflictStrategyRename": "Renommer",
"nameConflictStrategyReplace": "Remplacer",
diff --git a/lib/l10n/app_ko.arb b/lib/l10n/app_ko.arb
index ac2d83ce4..eb867fba8 100644
--- a/lib/l10n/app_ko.arb
+++ b/lib/l10n/app_ko.arb
@@ -110,8 +110,8 @@
"mapStyleGoogleHybrid": "구글 지도 (위성)",
"mapStyleGoogleTerrain": "구글 지도 (지형)",
"mapStyleOsmHot": "Humanitarian OSM",
- "mapStyleStamenToner": "Stamen 토너",
- "mapStyleStamenWatercolor": "Stamen 수채화",
+ "mapStyleStamenToner": "Stamen Toner (토너)",
+ "mapStyleStamenWatercolor": "Stamen Watercolor (수채화)",
"nameConflictStrategyRename": "이름 변경",
"nameConflictStrategyReplace": "대체",
diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb
new file mode 100644
index 000000000..5c63c736a
--- /dev/null
+++ b/lib/l10n/app_pt.arb
@@ -0,0 +1,538 @@
+{
+ "appName": "Aves",
+ "welcomeMessage": "Bem-vindo ao Aves",
+ "welcomeOptional": "Opcional",
+ "welcomeTermsToggle": "Eu concordo com os Termos e Condições",
+ "itemCount": "{count, plural, =1{1 item} other{{count} itens}}",
+
+ "timeSeconds": "{seconds, plural, =1{1 segundo} other{{seconds} segundos}}",
+ "timeMinutes": "{minutes, plural, =1{1 minuto} other{{minutes} minutos}}",
+
+ "applyButtonLabel": "APLIQUE",
+ "deleteButtonLabel": "EXCLUIR",
+ "nextButtonLabel": "PROXIMO",
+ "showButtonLabel": "MOSTRAR",
+ "hideButtonLabel": "OCULTAR",
+ "continueButtonLabel": "CONTINUAR",
+
+ "cancelTooltip": "Cancela",
+ "changeTooltip": "Mudar",
+ "clearTooltip": "Claro",
+ "previousTooltip": "Anterior",
+ "nextTooltip": "Proximo",
+ "showTooltip": "Mostrar",
+ "hideTooltip": "Ocultar",
+ "actionRemove": "Remover",
+ "resetButtonTooltip": "Resetar",
+
+ "doubleBackExitMessage": "Toque em “voltar” novamente para sair.",
+
+ "sourceStateLoading": "Carregando",
+ "sourceStateCataloguing": "Catalogação",
+ "sourceStateLocatingCountries": "Localizando países",
+ "sourceStateLocatingPlaces": "Localizando lugares",
+
+ "chipActionDelete": "Deletar",
+ "chipActionGoToAlbumPage": "Mostrar nos Álbuns",
+ "chipActionGoToCountryPage": "Mostrar em Países",
+ "chipActionGoToTagPage": "Mostrar em Etiquetas",
+ "chipActionHide": "Ocultar",
+ "chipActionPin": "Fixar no topo",
+ "chipActionUnpin": "Desafixar do topo",
+ "chipActionRename": "Renomear",
+ "chipActionSetCover": "Definir capa",
+ "chipActionCreateAlbum": "Criar álbum",
+
+ "entryActionCopyToClipboard": "Copiar para área de transferência",
+ "entryActionDelete": "Excluir",
+ "entryActionExport": "Exportar",
+ "entryActionInfo": "Informações",
+ "entryActionRename": "Renomear",
+ "entryActionRotateCCW": "Rotacionar para esquerda",
+ "entryActionRotateCW": "Rotacionar para direita",
+ "entryActionFlip": "Virar horizontalmente",
+ "entryActionPrint": "Imprimir",
+ "entryActionShare": "Compartilhado",
+ "entryActionViewSource": "Ver fonte",
+ "entryActionViewMotionPhotoVideo": "Abrir foto em movimento",
+ "entryActionEdit": "Editar com…",
+ "entryActionOpen": "Abrir com…",
+ "entryActionSetAs": "Definir como…",
+ "entryActionOpenMap": "Mostrar no aplicativo de mapa…",
+ "entryActionRotateScreen": "Girar a tela",
+ "entryActionAddFavourite": "Adicionar aos favoritos",
+ "entryActionRemoveFavourite": "Remova dos favoritos",
+
+ "videoActionCaptureFrame": "Capturar quadro",
+ "videoActionPause": "Pausa",
+ "videoActionPlay": "Toque",
+ "videoActionReplay10": "Retroceda 10 segundos",
+ "videoActionSkip10": "Avançar 10 segundos",
+ "videoActionSelectStreams": "Selecione as faixas",
+ "videoActionSetSpeed": "Velocidade de reprodução",
+ "videoActionSettings": "Configurações",
+
+ "entryInfoActionEditDate": "Editar data e hora",
+ "entryInfoActionEditRating": "Editar classificação",
+ "entryInfoActionEditTags": "Editar etiquetas",
+ "entryInfoActionRemoveMetadata": "Remover metadados",
+
+ "filterFavouriteLabel": "Favorito",
+ "filterLocationEmptyLabel": "Não localizado",
+ "filterTagEmptyLabel": "Sem etiqueta",
+ "filterRatingUnratedLabel": "Sem classificação",
+ "filterRatingRejectedLabel": "Rejeitado",
+ "filterTypeAnimatedLabel": "Animado",
+ "filterTypeMotionPhotoLabel": "Foto em movimento",
+ "filterTypePanoramaLabel": "Panorama",
+ "filterTypeRawLabel": "Raw",
+ "filterTypeSphericalVideoLabel": "360° vídeo",
+ "filterTypeGeotiffLabel": "GeoTIFF",
+ "filterMimeImageLabel": "Imagem",
+ "filterMimeVideoLabel": "Vídeo",
+
+ "coordinateFormatDms": "DMS",
+ "coordinateFormatDecimal": "Graus decimais",
+ "coordinateDms": "{coordinate} {direction}",
+ "coordinateDmsNorth": "N",
+ "coordinateDmsSouth": "S",
+ "coordinateDmsEast": "L",
+ "coordinateDmsWest": "O",
+
+ "unitSystemMetric": "Métrica",
+ "unitSystemImperial": "Imperial",
+
+ "videoLoopModeNever": "Nunca",
+ "videoLoopModeShortOnly": "Apenas vídeos curtos",
+ "videoLoopModeAlways": "Sempre",
+
+ "mapStyleGoogleNormal": "Google Maps",
+ "mapStyleGoogleHybrid": "Google Maps (Híbrido)",
+ "mapStyleGoogleTerrain": "Google Maps (Terreno)",
+ "mapStyleOsmHot": "OSM Humanitário",
+ "mapStyleStamenToner": "Stamen Toner (Monocromático)",
+ "mapStyleStamenWatercolor": "Stamen Watercolor (Aquarela)",
+
+ "nameConflictStrategyRename": "Renomear",
+ "nameConflictStrategyReplace": "Substituir",
+ "nameConflictStrategySkip": "Pular",
+
+ "keepScreenOnNever": "Nunca",
+ "keepScreenOnViewerOnly": "Somente página do visualizador",
+ "keepScreenOnAlways": "Sempre",
+
+ "accessibilityAnimationsRemove": "Prevenir efeitos de tela",
+ "accessibilityAnimationsKeep": "Manter efeitos de tela",
+
+ "albumTierNew": "Novo",
+ "albumTierPinned": "Fixada",
+ "albumTierSpecial": "Comum",
+ "albumTierApps": "Aplicativos",
+ "albumTierRegular": "Outras",
+
+ "storageVolumeDescriptionFallbackPrimary": "Armazenamento interno",
+ "storageVolumeDescriptionFallbackNonPrimary": "cartão SD",
+ "rootDirectoryDescription": "diretório raiz",
+ "otherDirectoryDescription": "diretório “{name}”",
+ "storageAccessDialogTitle": "Acesso de armazenamento",
+ "storageAccessDialogMessage": "Selecione o {directory} de “{volume}” na próxima tela para dar acesso a este aplicativo.",
+ "restrictedAccessDialogTitle": "Acesso restrito",
+ "restrictedAccessDialogMessage": "Este aplicativo não tem permissão para modificar arquivos no {directory} de “{volume}”.\n\nUse um gerenciador de arquivos ou aplicativo de galeria pré-instalado para mover os itens para outro diretório.",
+ "notEnoughSpaceDialogTitle": "Espaço insuficiente",
+ "notEnoughSpaceDialogMessage": "Esta operação precisa {neededSize} de espaço livre em “{volume}” para completar, mas só {freeSize} restantes.",
+ "missingSystemFilePickerDialogTitle": "Seletor de arquivos do sistema ausente",
+ "missingSystemFilePickerDialogMessage": "O seletor de arquivos do sistema está ausente ou desabilitado. Por favor, habilite e tente novamente.",
+
+ "unsupportedTypeDialogTitle": "Tipos não suportados",
+ "unsupportedTypeDialogMessage": "{count, plural, =1{Esta operação não é suportada para itens do seguinte tipo: {types}.} other{Esta operação não é suportada para itens dos seguintes tipos: {types}.}}",
+
+ "nameConflictDialogSingleSourceMessage": "Alguns arquivos na pasta de destino têm o mesmo nome.",
+ "nameConflictDialogMultipleSourceMessage": "Alguns arquivos têm o mesmo nome.",
+
+ "addShortcutDialogLabel": "Rótulo de atalho",
+ "addShortcutButtonLabel": "ADICIONAR",
+
+ "noMatchingAppDialogTitle": "Nenhum aplicativo correspondente",
+ "noMatchingAppDialogMessage": "Não há aplicativos que possam lidar com isso.",
+
+ "deleteEntriesConfirmationDialogMessage": "{count, plural, =1{Tem certeza de que deseja excluir este item?} other{Tem certeza de que deseja excluir estes {count} itens?}}",
+
+ "videoResumeDialogMessage": "Deseja continuar jogando em {time}?",
+ "videoStartOverButtonLabel": "RECOMEÇAR",
+ "videoResumeButtonLabel": "RETOMAR",
+
+ "setCoverDialogTitle": "Definir capa",
+ "setCoverDialogLatest": "Último item",
+ "setCoverDialogCustom": "Personalizado",
+
+ "hideFilterConfirmationDialogMessage": "Fotos e vídeos correspondentes serão ocultados da sua coleção. Você pode mostrá-los novamente nas configurações de “Privacidade”.\n\nTem certeza de que deseja ocultá-los?",
+
+ "newAlbumDialogTitle": "Novo álbum",
+ "newAlbumDialogNameLabel": "Nome do álbum",
+ "newAlbumDialogNameLabelAlreadyExistsHelper": "O diretório já existe",
+ "newAlbumDialogStorageLabel": "Armazenar:",
+
+ "renameAlbumDialogLabel": "Novo nome",
+ "renameAlbumDialogLabelAlreadyExistsHelper": "O diretório já existe",
+
+ "deleteSingleAlbumConfirmationDialogMessage": "{count, plural, =1{Tem certeza de que deseja excluir este álbum e seu item?} other{Tem certeza de que deseja excluir este álbum e seus {count} itens?}}",
+ "deleteMultiAlbumConfirmationDialogMessage": "{count, plural, =1{Tem certeza de que deseja excluir estes álbuns e seus itens?} other{Tem certeza de que deseja excluir estes álbuns e seus {count} itens?}}",
+
+ "exportEntryDialogFormat": "Formato:",
+
+ "renameEntryDialogLabel": "Novo nome",
+
+ "editEntryDateDialogTitle": "Data e hora",
+ "editEntryDateDialogSetCustom": "Definir data personalizada",
+ "editEntryDateDialogCopyField": "Copiar de outra data",
+ "editEntryDateDialogExtractFromTitle": "Extrair do título",
+ "editEntryDateDialogShift": "Mudança",
+ "editEntryDateDialogSourceFileModifiedDate": "Data de modificação do arquivo",
+ "editEntryDateDialogTargetFieldsHeader": "Campos para modificar",
+ "editEntryDateDialogHours": "Horas",
+ "editEntryDateDialogMinutes": "Minutos",
+
+ "editEntryRatingDialogTitle": "Avaliação",
+
+ "removeEntryMetadataDialogTitle": "Remoção de metadados",
+ "removeEntryMetadataDialogMore": "Mais",
+
+ "removeEntryMetadataMotionPhotoXmpWarningDialogMessage": "XMP é necessário para reproduzir o vídeo dentro de uma foto em movimento.\n\nTem certeza de que deseja removê-lo?",
+
+ "videoSpeedDialogLabel": "Velocidade de reprodução",
+
+ "videoStreamSelectionDialogVideo": "Video",
+ "videoStreamSelectionDialogAudio": "Áudio",
+ "videoStreamSelectionDialogText": "Legendas",
+ "videoStreamSelectionDialogOff": "Fora",
+ "videoStreamSelectionDialogTrack": "Acompanhar",
+ "videoStreamSelectionDialogNoSelection": "Não há outras faixas.",
+
+ "genericSuccessFeedback": "Feito!",
+ "genericFailureFeedback": "Falhou",
+
+ "menuActionConfigureView": "Visualizar",
+ "menuActionSelect": "Selecionar",
+ "menuActionSelectAll": "Selecionar tudo",
+ "menuActionSelectNone": "Selecione nenhum",
+ "menuActionMap": "Mapa",
+ "menuActionStats": "Estatísticas",
+
+ "viewDialogTabSort": "Organizar",
+ "viewDialogTabGroup": "Grupo",
+ "viewDialogTabLayout": "Layout",
+
+ "tileLayoutGrid": "Grid",
+ "tileLayoutList": "Lista",
+
+ "aboutPageTitle": "Sobre",
+ "aboutLinkSources": "Fontes",
+ "aboutLinkLicense": "Licença",
+ "aboutLinkPolicy": "Política de Privacidade",
+
+ "aboutUpdate": "Nova versão disponível",
+ "aboutUpdateLinks1": "Uma nova versão do Aves está disponível em",
+ "aboutUpdateLinks2": "e",
+ "aboutUpdateLinks3": ".",
+ "aboutUpdateGitHub": "GitHub",
+ "aboutUpdateGooglePlay": "Google Play",
+
+ "aboutBug": "Relatório de erro",
+ "aboutBugSaveLogInstruction": "Salvar registros de aplicativos em um arquivo",
+ "aboutBugSaveLogButton": "Salve",
+ "aboutBugCopyInfoInstruction": "Copiar informações do sistema",
+ "aboutBugCopyInfoButton": "Copiar",
+ "aboutBugReportInstruction": "Relatório no GitHub com os logs e informações do sistema",
+ "aboutBugReportButton": "Relatório",
+
+ "aboutCredits": "Créditos",
+ "aboutCreditsWorldAtlas1": "Este aplicativo usa um arquivo de TopoJSON",
+ "aboutCreditsWorldAtlas2": "sob licença ISC.",
+ "aboutCreditsTranslators": "Tradutores:",
+ "aboutCreditsTranslatorLine": "{language}: {names}",
+
+ "aboutLicenses": "Licenças de código aberto",
+ "aboutLicensesBanner": "Este aplicativo usa os seguintes pacotes e bibliotecas de código aberto.",
+ "aboutLicensesAndroidLibraries": "Bibliotecas Android",
+ "aboutLicensesFlutterPlugins": "Plug-ins Flutter",
+ "aboutLicensesFlutterPackages": "Pacotes Flutter",
+ "aboutLicensesDartPackages": "Pacotes Dart",
+ "aboutLicensesShowAllButtonLabel": "Mostrar todas as licenças",
+
+ "policyPageTitle": "Política de Privacidade",
+
+ "collectionPageTitle": "Coleção",
+ "collectionPickPageTitle": "Escolher",
+ "collectionSelectionPageTitle": "{count, plural, =0{Selecionar itens} =1{1 item} other{{count} itens}}",
+
+ "collectionActionShowTitleSearch": "Mostrar filtro de título",
+ "collectionActionHideTitleSearch": "Ocultar filtro de título",
+ "collectionActionAddShortcut": "Adicionar atalho",
+ "collectionActionCopy": "Copiar para o álbum",
+ "collectionActionMove": "Mover para o álbum",
+ "collectionActionRescan": "Reexaminar",
+ "collectionActionEdit": "Editar",
+
+ "collectionSearchTitlesHintText": "Pesquisar títulos",
+
+ "collectionSortDate": "Por data",
+ "collectionSortSize": "Por tamanho",
+ "collectionSortName": "Por álbum e nome de arquivo",
+ "collectionSortRating": "Por classificação",
+
+ "collectionGroupAlbum": "Por álbum",
+ "collectionGroupMonth": "Por mês",
+ "collectionGroupDay": "Por dia",
+ "collectionGroupNone": "Não agrupe",
+
+ "sectionUnknown": "Desconhecido",
+ "dateToday": "Hoje",
+ "dateYesterday": "Ontem",
+ "dateThisMonth": "Este mês",
+ "collectionDeleteFailureFeedback": "{count, plural, =1{Falha ao excluir 1 item} other{Falha ao excluir {count} itens}}",
+ "collectionCopyFailureFeedback": "{count, plural, =1{Falha ao copiar 1 item} other{Falha ao copiar {count} itens}}",
+ "collectionMoveFailureFeedback": "{count, plural, =1{Falha ao mover 1 item} other{Falha ao mover {count} itens}}",
+ "collectionEditFailureFeedback": "{count, plural, =1{Falha ao editar 1 item} other{Falha ao editar {count} itens}}",
+ "collectionExportFailureFeedback": "{count, plural, =1{Falha ao exportar 1 página} other{Falha ao exportar {count} páginas}}",
+ "collectionCopySuccessFeedback": "{count, plural, =1{1 item copiado} other{Copiado {count} itens}}",
+ "collectionMoveSuccessFeedback": "{count, plural, =1{1 item movido} other{Mudou-se {count} itens}}",
+ "collectionEditSuccessFeedback": "{count, plural, =1{Editado 1 item} other{Editado {count} itens}}",
+
+ "collectionEmptyFavourites": "Nenhum favorito",
+ "collectionEmptyVideos": "Nenhum video",
+ "collectionEmptyImages": "Nenhuma image",
+
+ "collectionSelectSectionTooltip": "Selecionar seção",
+ "collectionDeselectSectionTooltip": "Desmarcar seção",
+
+ "drawerCollectionAll": "Toda a coleção",
+ "drawerCollectionFavourites": "Favoritos",
+ "drawerCollectionImages": "Imagens",
+ "drawerCollectionVideos": "Vídeos",
+ "drawerCollectionAnimated": "Animado",
+ "drawerCollectionMotionPhotos": "Fotos em movimento",
+ "drawerCollectionPanoramas": "Panoramas",
+ "drawerCollectionRaws": "Fotos Raw",
+ "drawerCollectionSphericalVideos": "360° Videos",
+
+ "chipSortDate": "Por data",
+ "chipSortName": "Por nome",
+ "chipSortCount": "Por contagem de itens",
+
+ "albumGroupTier": "Por nível",
+ "albumGroupVolume": "Por volume de armazenamento",
+ "albumGroupNone": "Não agrupe",
+
+ "albumPickPageTitleCopy": "Copiar para o álbum",
+ "albumPickPageTitleExport": "Exportar para o álbum",
+ "albumPickPageTitleMove": "Mover para o álbum",
+ "albumPickPageTitlePick": "Escolher álbum",
+
+ "albumCamera": "Câmera",
+ "albumDownload": "Download",
+ "albumScreenshots": "Capturas de tela",
+ "albumScreenRecordings": "Gravações de tela",
+ "albumVideoCaptures": "Capturas de vídeo",
+
+ "albumPageTitle": "Álbuns",
+ "albumEmpty": "Nenhum álbum",
+ "createAlbumTooltip": "Criar álbum",
+ "createAlbumButtonLabel": "CRIA",
+ "newFilterBanner": "novo",
+
+ "countryPageTitle": "Países",
+ "countryEmpty": "Nenhum país",
+
+ "tagPageTitle": "Etiquetas",
+ "tagEmpty": "Sem etiquetas",
+
+ "searchCollectionFieldHint": "Pesquisar coleção",
+ "searchSectionRecent": "Recente",
+ "searchSectionAlbums": "Álbuns",
+ "searchSectionCountries": "Países",
+ "searchSectionPlaces": "Locais",
+ "searchSectionTags": "Etiquetas",
+ "searchSectionRating": "Classificações",
+
+ "settingsPageTitle": "Configurações",
+ "settingsSystemDefault": "Sistema",
+ "settingsDefault": "Padrão",
+
+ "settingsActionExport": "Exportar",
+ "settingsActionImport": "Importar",
+
+ "settingsSectionNavigation": "Navegação",
+ "settingsHome": "Início",
+ "settingsKeepScreenOnTile": "Manter a tela ligada",
+ "settingsKeepScreenOnTitle": "Manter a tela ligada",
+ "settingsDoubleBackExit": "Toque em “voltar” duas vezes para sair",
+
+ "settingsNavigationDrawerTile": "Menu de navegação",
+ "settingsNavigationDrawerEditorTitle": "Menu de navegação",
+ "settingsNavigationDrawerBanner": "Toque e segure para mover e reordenar os itens do menu.",
+ "settingsNavigationDrawerTabTypes": "Tipos",
+ "settingsNavigationDrawerTabAlbums": "Álbuns",
+ "settingsNavigationDrawerTabPages": "Páginas",
+ "settingsNavigationDrawerAddAlbum": "Adicionar álbum",
+
+ "settingsSectionThumbnails": "Miniaturas",
+ "settingsThumbnailShowFavouriteIcon": "Mostrar ícone favorito",
+ "settingsThumbnailShowLocationIcon": "Mostrar ícone de localização",
+ "settingsThumbnailShowMotionPhotoIcon": "Mostrar ícone de foto em movimento",
+ "settingsThumbnailShowRating": "Mostrar classificação",
+ "settingsThumbnailShowRawIcon": "Mostrar ícone raw",
+ "settingsThumbnailShowVideoDuration": "Mostrar duração do vídeo",
+
+ "settingsCollectionQuickActionsTile": "Ações rápidas",
+ "settingsCollectionQuickActionEditorTitle": "Ações rápidas",
+ "settingsCollectionQuickActionTabBrowsing": "Navegando",
+ "settingsCollectionQuickActionTabSelecting": "Selecionando",
+ "settingsCollectionBrowsingQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas ao navegar pelos itens.",
+ "settingsCollectionSelectionQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas ao selecionar itens.",
+
+ "settingsSectionViewer": "Visualizador",
+ "settingsViewerUseCutout": "Usar área de recorte",
+ "settingsViewerMaximumBrightness": "Brilho máximo",
+ "settingsMotionPhotoAutoPlay": "Reprodução automática de fotos em movimento",
+ "settingsImageBackground": "Plano de fundo da imagem",
+
+ "settingsViewerQuickActionsTile": "Ações rápidas",
+ "settingsViewerQuickActionEditorTitle": "Ações rápidas",
+ "settingsViewerQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas no visualizador.",
+ "settingsViewerQuickActionEditorDisplayedButtons": "Botões exibidos",
+ "settingsViewerQuickActionEditorAvailableButtons": "Botões disponíveis",
+ "settingsViewerQuickActionEmpty": "Sem botões",
+
+ "settingsViewerOverlayTile": "Sobreposição",
+ "settingsViewerOverlayTitle": "Sobreposição",
+ "settingsViewerShowOverlayOnOpening": "Mostrar na abertura",
+ "settingsViewerShowMinimap": "Mostrar minimapa",
+ "settingsViewerShowInformation": "Mostrar informações",
+ "settingsViewerShowInformationSubtitle": "Mostrar título, data, local, etc.",
+ "settingsViewerShowShootingDetails": "Mostrar detalhes de disparo",
+ "settingsViewerEnableOverlayBlurEffect": "Efeito de desfoque",
+
+ "settingsVideoPageTitle": "Configurações de vídeo",
+ "settingsSectionVideo": "Vídeo",
+ "settingsVideoShowVideos": "Mostrar vídeos",
+ "settingsVideoEnableHardwareAcceleration": "Aceleraçao do hardware",
+ "settingsVideoEnableAutoPlay": "Reprodução automática",
+ "settingsVideoLoopModeTile": "Modo de loop",
+ "settingsVideoLoopModeTitle": "Modo de loop",
+ "settingsVideoQuickActionsTile": "Ações rápidas para vídeos",
+ "settingsVideoQuickActionEditorTitle": "Ações rápidas",
+
+ "settingsSubtitleThemeTile": "Legendas",
+ "settingsSubtitleThemeTitle": "Legendas",
+ "settingsSubtitleThemeSample": "Esta é uma amostra.",
+ "settingsSubtitleThemeTextAlignmentTile": "Alinhamento de texto",
+ "settingsSubtitleThemeTextAlignmentTitle": "Alinhamento de Texto",
+ "settingsSubtitleThemeTextSize": "Tamanho do texto",
+ "settingsSubtitleThemeShowOutline": "Mostrar contorno e sombra",
+ "settingsSubtitleThemeTextColor": "Cor do texto",
+ "settingsSubtitleThemeTextOpacity": "Opacidade do texto",
+ "settingsSubtitleThemeBackgroundColor": "Cor de fundo",
+ "settingsSubtitleThemeBackgroundOpacity": "Opacidade do plano de fundo",
+ "settingsSubtitleThemeTextAlignmentLeft": "Esquerda",
+ "settingsSubtitleThemeTextAlignmentCenter": "Centro",
+ "settingsSubtitleThemeTextAlignmentRight": "Direita",
+
+ "settingsSectionPrivacy": "Privacidade",
+ "settingsAllowInstalledAppAccess": "Permitir acesso ao inventário de aplicativos",
+ "settingsAllowInstalledAppAccessSubtitle": "Usado para melhorar a exibição do álbum",
+ "settingsAllowErrorReporting": "Permitir relatórios de erros anônimos",
+ "settingsSaveSearchHistory": "Salvar histórico de pesquisa",
+
+ "settingsHiddenItemsTile": "Itens ocultos",
+ "settingsHiddenItemsTitle": "Itens ocultos",
+
+ "settingsHiddenFiltersTitle": "Filtros ocultos",
+ "settingsHiddenFiltersBanner": "Fotos e vídeos que correspondem a filtros ocultos não aparecerão em sua coleção.",
+ "settingsHiddenFiltersEmpty": "Sem filtros ocultos",
+
+ "settingsHiddenPathsTitle": "Caminhos Ocultos",
+ "settingsHiddenPathsBanner": "Fotos e vídeos nessas pastas, ou em qualquer uma de suas subpastas, não aparecerão em sua coleção.",
+ "addPathTooltip": "Adicionar caminho",
+
+ "settingsStorageAccessTile": "Acesso ao armazenamento",
+ "settingsStorageAccessTitle": "Acesso ao armazenamento",
+ "settingsStorageAccessBanner": "Alguns diretórios exigem uma concessão de acesso explícito para modificar arquivos neles. Você pode revisar aqui os diretórios aos quais você deu acesso anteriormente.",
+ "settingsStorageAccessEmpty": "Sem concessões de acesso",
+ "settingsStorageAccessRevokeTooltip": "Revogar",
+
+ "settingsSectionAccessibility": "Acessibilidade",
+ "settingsRemoveAnimationsTile": "Remover animações",
+ "settingsRemoveAnimationsTitle": "Remover Animações",
+ "settingsTimeToTakeActionTile": "Tempo para executar uma ação",
+ "settingsTimeToTakeActionTitle": "Tempo para executar uma ação",
+
+ "settingsSectionLanguage": "Idioma e Formatos",
+ "settingsLanguage": "Língua",
+ "settingsCoordinateFormatTile": "Formato de coordenadas",
+ "settingsCoordinateFormatTitle": "Formato de coordenadas",
+ "settingsUnitSystemTile": "Unidades",
+ "settingsUnitSystemTitle": "Unidades",
+
+ "statsPageTitle": "Estatísticas",
+ "statsWithGps": "{count, plural, =1{1 item com localização} other{{count} itens com localização}}",
+ "statsTopCountries": "Principais Países",
+ "statsTopPlaces": "Principais Lugares",
+ "statsTopTags": "Principais Etiquetas",
+
+ "viewerOpenPanoramaButtonLabel": "ABRIR PANORAMA",
+ "viewerErrorUnknown": "Algo não está certo!",
+ "viewerErrorDoesNotExist": "O arquivo não existe mais.",
+
+ "viewerInfoPageTitle": "Informações",
+ "viewerInfoBackToViewerTooltip": "Voltar ao visualizador",
+
+ "viewerInfoUnknown": "desconhecido",
+ "viewerInfoLabelTitle": "Título",
+ "viewerInfoLabelDate": "Data",
+ "viewerInfoLabelResolution": "Resolução",
+ "viewerInfoLabelSize": "Tamanho",
+ "viewerInfoLabelUri": "URI",
+ "viewerInfoLabelPath": "Caminho",
+ "viewerInfoLabelDuration": "Duração",
+ "viewerInfoLabelOwner": "Propriedade de",
+ "viewerInfoLabelCoordinates": "Coordenadas",
+ "viewerInfoLabelAddress": "Endereço",
+
+ "mapStyleTitle": "Estilo do mapa",
+ "mapStyleTooltip": "Selecione o estilo do mapa",
+ "mapZoomInTooltip": "Mais zoom",
+ "mapZoomOutTooltip": "Reduzir o zoom",
+ "mapPointNorthUpTooltip": "Aponte para o norte para cima",
+ "mapAttributionOsmHot": "Dados do mapa © [OpenStreetMap](https://www.openstreetmap.org/copyright) colaboradores • Blocos por [HOT](https://www.hotosm.org/) • Hospedado por [OSM France](https://openstreetmap.fr/)",
+ "mapAttributionStamen": "Dados do mapa © [OpenStreetMap](https://www.openstreetmap.org/copyright) colaboradores • Blocos por [Stamen Design](http://stamen.com), [CC BY 3.0](http://creativecommons.org/licenses/by/3.0)",
+ "openMapPageTooltip": "Visualizar na página do mapa",
+ "mapEmptyRegion": "Nenhuma imagem nesta região",
+
+ "viewerInfoOpenEmbeddedFailureFeedback": "Falha ao extrair dados incorporados",
+ "viewerInfoOpenLinkText": "Abrir",
+ "viewerInfoViewXmlLinkText": "Visualizar XML",
+
+ "viewerInfoSearchFieldLabel": "Pesquisar metadados",
+ "viewerInfoSearchEmpty": "Nenhuma chave correspondente",
+ "viewerInfoSearchSuggestionDate": "Data e Hora",
+ "viewerInfoSearchSuggestionDescription": "Descrição",
+ "viewerInfoSearchSuggestionDimensions": "Dimensões",
+ "viewerInfoSearchSuggestionResolution": "Resolução",
+ "viewerInfoSearchSuggestionRights": "Direitos",
+
+ "tagEditorPageTitle": "Editar etiquetas",
+ "tagEditorPageNewTagFieldLabel": "Nova etiqueta",
+ "tagEditorPageAddTagTooltip": "Adicionar etiqueta",
+ "tagEditorSectionRecent": "Recente",
+
+ "panoramaEnableSensorControl": "Ativar o controle do sensor",
+ "panoramaDisableSensorControl": "Desabilitar o controle do sensor",
+
+ "sourceViewerPageTitle": "Fonte",
+
+ "filePickerShowHiddenFiles": "Mostrar arquivos ocultos",
+ "filePickerDoNotShowHiddenFiles": "Não mostre arquivos ocultos",
+ "filePickerOpenFrom": "Abrir de",
+ "filePickerNoItems": "Nenhum itens",
+ "filePickerUseThisFolder": "Usar esta pasta"
+}
diff --git a/lib/widgets/about/credits.dart b/lib/widgets/about/credits.dart
index 35251d760..67ef9be7c 100644
--- a/lib/widgets/about/credits.dart
+++ b/lib/widgets/about/credits.dart
@@ -9,6 +9,7 @@ class AboutCredits extends StatelessWidget {
static const translators = {
'Deutsch': 'JanWaldhorn',
'Español (México)': 'n-berenice',
+ 'Português (Brasil)': 'Jonatas De Almeida Barros',
'Русский': 'D3ZOXY',
};
diff --git a/lib/widgets/settings/language/locales.dart b/lib/widgets/settings/language/locales.dart
index cb992c796..87fc6ad33 100644
--- a/lib/widgets/settings/language/locales.dart
+++ b/lib/widgets/settings/language/locales.dart
@@ -7,6 +7,7 @@ class SupportedLocales {
'es': 'Español (México)',
'fr': 'Français',
'ko': '한국어',
+ 'pt': 'Português (Brasil)',
'ru': 'Русский',
};
}