diff --git a/src/localization/languages/pt.json b/src/localization/languages/pt.json
new file mode 100644
index 0000000..8c2f74f
--- /dev/null
+++ b/src/localization/languages/pt.json
@@ -0,0 +1,115 @@
+{
+ "name": "português (brasil)",
+ "substrings": {
+ "ContactLink": "abra um issue no github"
+ },
+ "strings": {
+ "LinkInput": "cole seu link aqui",
+ "AboutSummary": "{appName} é o lugar ideal para baixar conteúdo das redes sociais. sem anúncios, rastreadores ou outras coisas suspeitas. apenas cole um link e pronto!",
+ "AboutSupportedServices": "serviços suportados atualmente:",
+ "EmbedBriefDescription": "salve conteúdo das redes sociais sem irritações",
+ "MadeWithLove": "feito com <3 por wukko",
+ "AccessibilityInputArea": "área de entrada de link",
+ "AccessibilityOpenAbout": "abrir janela sobre",
+ "AccessibilityDownloadButton": "botão de download",
+ "AccessibilityOpenSettings": "abrir janela de configurações",
+ "AccessibilityClosePopup": "fechar a janela",
+ "AccessibilityOpenDonate": "abrir janela de doação",
+ "TitlePopupAbout": "o que é {appName}?",
+ "TitlePopupSettings": "configurações",
+ "TitlePopupError": "Ah não...",
+ "TitlePopupChangelog": "o que há de novo?",
+ "TitlePopupDonate": "apoie {appName}",
+ "TitlePopupDownload": "baixar",
+ "ErrorSomethingWentWrong": "algo deu errado e eu não consegui encontrar nada para você. você pode tentar novamente, mas se o problema persistir, por favor {ContactLink}.",
+ "ErrorUnsupported": "parece que esse serviço ainda não é suportado, ou o link é inválido.",
+ "ErrorBrokenLink": "{s} é suportado, mas tem algo de errado com o link. talvez você não o copiou completamente?",
+ "ErrorNoLink": "não consigo adivinhar o que você quer baixar! por favor, me dê um link.",
+ "ErrorPageRenderFail": "algo deu errado e a página não pôde ser renderizada. se for um problema recorrente ou crítico, por favor {ContactLink}. seria útil se você fornecesse o hash da commit atual ({s}) e passos para recriar o erro. obrigado :D",
+ "ErrorRateLimit": "você está fazendo pedidos de mais. se acalme e tente novamente daqui a pouco.",
+ "ErrorCouldntFetch": "não consegui obter nenhuma informação sobre seu link. verifique se ele está correto e tente novamente.",
+ "ErrorLengthLimit": "o limite de duração atual é {s} minutos. o vídeo que você tentou baixar é maior que {s} minutos. escolha outra coisa para baixar!",
+ "ErrorBadFetch": "ocorreu um erro quando tentei obter informações sobre seu link. tem certeza de ele funciona? verifique e tente novamente.",
+ "ErrorCorruptedStream": "infelizmente, esse download está corrompido. tente novamente, ou tente um formato e resolução diferentes.",
+ "ErrorNoInternet": "não há internet, ou a api de {appName} está fora do ar. verifique sua conexão e tente novamente.",
+ "ErrorCantConnectToServiceAPI": "não foi possível conectar à api de {s}. parece que {s} está com problemas, ou o ip do {appName} foi bloqueado. tente novamente mais tarde.",
+ "ErrorEmptyDownload": "não vejo nada que eu poderia baixar daqui. tente um link diferente.",
+ "ErrorLiveVideo": "não tenho bola de cristal para conseguir baixar o vídeo de uma live que ainda não terminou. espere o fim da stream e tente de novo!",
+ "SettingsAppearanceSubtitle": "aparência",
+ "SettingsThemeSubtitle": "tema",
+ "SettingsFormatSubtitle": "formato do download",
+ "SettingsQualitySubtitle": "qualidade",
+ "SettingsThemeAuto": "auto",
+ "SettingsThemeLight": "claro",
+ "SettingsThemeDark": "escuro",
+ "SettingsQualitySwitchMax": "máx.",
+ "SettingsQualitySwitchHigh": "alta",
+ "SettingsQualitySwitchMedium": "média",
+ "SettingsQualitySwitchLow": "baixa",
+ "SettingsQualitySwitchLowest": "mais baixa",
+ "SettingsKeepDownloadButton": "manter >> visível",
+ "AccessibilityKeepDownloadButton": "manter o botão de download sempre visível",
+ "SettingsEnableDownloadPopup": "pergunte a maneira de salvar",
+ "AccessibilityEnableDownloadPopup": "perguntar o que fazer com os downloads",
+ "SettingsFormatDescription": "selecione o formato webm se você quer a melhor qualidade disponível. este formato normalmente tem uma taxa de bits maior, mas dispositivos ios não conseguem reproduzi-lo nativamente.",
+ "SettingsQualityDescription": "se a qualidade selecionada não estiver disponível, a mais próxima será usada.\nse quiser postar um vídeo do youtube nas redes sociais, selecione uma combinação de mp4 e 720p.",
+ "LinkGitHubIssues": ">> reporte problemas e confira o código-fonte no github",
+ "LinkGitHubChanges": ">> veja commits anteriores e contribua no github",
+ "NoScriptMessage": "{appName} usa javascript para a interface interativa e solicitações de api. você dever habilitar o javascript para usar este site. não tenho nenhum anúncio ou rastreador, eu prometo.",
+ "DownloadPopupDescriptionIOS": "pressione e segure o botão de download, esconda a pré-visualização do vídeo e, em seguida, selecione \"baixar arquivo\" para salvar.",
+ "DownloadPopupDescription": "o botão de download abre uma nova aba com o arquivo solicitado. você pode desativar este pop-up nas configurações.",
+ "DownloadPopupWayToSave": "escolha como salvar",
+ "ClickToCopy": "pressione para copiar",
+ "Download": "baixar",
+ "CopyURL": "copiar url",
+ "AboutTab": "sobre",
+ "ChangelogTab": "log de alterações (em inglês)",
+ "DonationsTab": "doações",
+ "SettingsVideoTab": "vídeo",
+ "SettingsAudioTab": "áudio",
+ "SettingsOtherTab": "outros",
+ "ChangelogLastMajor": "versão atual & commit",
+ "AccessibilityModeToggle": "alternar o modo de download",
+ "DonateLinksDescription": "links de doação abrem em uma nova aba. essa é a melhor maneira para doar se você deseja que eu receba sua doação diretamente.",
+ "SettingsAudioFormatBest": "melhor",
+ "SettingsAudioFormatDescription": "quando o melhor formato é selecionado, você obtém o áudio na melhor qualidade disponível, pois ele não é recodificado. ao selecionar outro formato, você obterá um arquivo um pouco comprimido. ",
+ "Keyphrase": "salve o que você ama",
+ "SettingsRemoveWatermark": "desativar marca d'água",
+ "ErrorPopupCloseButton": "entendido",
+ "ErrorLengthAudioConvert": "o limite de duração para a conversão de áudio é {s} minutos. selecione o formato \"melhor\" se você quiser evitar limitações.",
+ "SettingsAudioFullTikTok": "baixar áudio completo",
+ "SettingsAudioFullTikTokDescription": "baixa o áudio ou som original usado no vídeo sem as mudanças feitas pelo autor do vídeo.",
+ "ErrorCantGetID": "não conseguir obter toda a informação do link encurtado. verifique se o link funciona, ou tente usar um completo.",
+ "ErrorNoVideosInTweet": "não achei nenhum vídeo ou gif nesse tweet. tente outro!",
+ "ImagePickerTitle": "escolha imagens pra baixar",
+ "ImagePickerDownloadAudio": "baixar áudio",
+ "ImagePickerExplanationPC": "clique com o botão direito em uma imagem para salvá-la",
+ "ImagePickerExplanationPhone": "pressione e segure uma imagem para salvá-la",
+ "ErrorNoUrlReturned": "o servidor não retornou um link de download. isso nunca deveria acontecer. recarregue a página e tente novamente, mas se isso não ajudar, {ContactLink}.",
+ "ErrorUnknownStatus": "eu recebi uma resposta que não consigo processar. o provável é que há algo de errado com o status. isso nunca deveria acontecer. recarregue a página e tente novamente. se isso não ajudar, {ContactLink}.",
+ "PasteFromClipboard": "colar da área de transferência",
+ "FollowTwitter": "siga a conta do {appName} no twitter para enquetes, atualizações e muito mais: @justusecobalt",
+ "ChangelogOlder": "versões anteriores (em inglês)",
+ "ChangelogPressToExpand": "clique para expandir",
+ "Miscellaneous": "outros",
+ "ModeToggleAuto": "modo automático",
+ "ModeToggleAudio": "modo áudio",
+ "SettingsDisableNotifications": "esconder pontos de notificação",
+ "MediaPickerTitle": "escolha o que salvar",
+ "MediaPickerExplanationPC": "clique ou clique com o botão direito para baixar o que você quer.",
+ "MediaPickerExplanationPhone": "pressione ou pressione e segure para baixar o que você quer.",
+ "MediaPickerExplanationPhoneIOS": "aperte e segure, oculte a pré-visualização e então selecione \"baixar arquivo\" para salvar.",
+ "TwitterSpaceWasntRecorded": "este espaço do twitter não foi gravado, então não há nada para baixar. tente outro!",
+ "ErrorCantProcess": "não pude processar o seu pedido :(\nvocê pode tentar novamente, mas se eu problema persistir, por favor {ContactLink}.",
+ "ChangelogPressToHide": "pressione aqui para recolher",
+ "Donate": "doar",
+ "DonateSub": "me ajude a mantê-lo",
+ "DonateExplanation": "{appName} não serve anúncios ou vende os seus dados (e nunca irá), portanto é completamente gratuito para uso. mas ei! aparentemente, a manutenção de um serviço usado por milhares de pessoas é uma coisa cara.\n\nse alguma vez você achou o {appName} útil e quer ajudar a mantê-lo online, ou simplesmente deseja agradecer ao desenvolvedor, considere doar algo! cada centavo ajuda, e é aceito com MUITA gratidão.",
+ "DonateVia": "doar via",
+ "DonateHireMe": "ou, alternativamente, você pode me contratar.",
+ "SettingsVideoMute": "silenciar áudio",
+ "SettingsVideoMuteExplanation": "desativa o áudio do vídeo baixado, quando possível. ignorado quando o modo áudio está ativado ou se o serviço só suporta áudio.",
+ "SettingsVideoGeneral": "geral",
+ "ErrorSoundCloudNoClientId": "não consegui encontrar o client_id necessário para obter os dados de áudio do soundclound. tente novamente, e se o problema persistir, {ContactLink}"
+ }
+}