diff --git a/src/localization/languages/pt-br.json b/src/localization/languages/pt-br.json
new file mode 100644
index 00000000..bdbe8e7e
--- /dev/null
+++ b/src/localization/languages/pt-br.json
@@ -0,0 +1,163 @@
+{
+ "name": "português",
+ "substrings": {
+ "ContactLink": "verifique a página de status ou crie um issue no github"
+ },
+ "strings": {
+ "AppTitleCobalt": "cobalt",
+ "LinkInput": "cole o link aqui",
+ "AboutSummary": "cobalt é o seu lugar ideal para baixar conteúdos de plataformas sociais e de mídia. sem anúncios, rastreadores ou outras chatices. basta colar um link de compartilhamento e você está pronto para começar!",
+ "EmbedBriefDescription": "salve o que você ama. sem anúncios, rastreadores, ou outras chatices esquisitas.",
+ "MadeWithLove": "feito com <3 por wukko",
+ "AccessibilityInputArea": "área de input de link",
+ "AccessibilityOpenAbout": "abrir popup sobre",
+ "AccessibilityDownloadButton": "botão de download",
+ "AccessibilityOpenSettings": "abrir popup de configurações",
+ "AccessibilityOpenDonate": "abrir popup de doação",
+ "TitlePopupAbout": "o que é cobalt?",
+ "TitlePopupSettings": "configurações",
+ "TitlePopupChangelog": "quais são as novidades?",
+ "TitlePopupDonate": "apoie o cobalt",
+ "TitlePopupDownload": "como salvar?",
+ "ErrorSomethingWentWrong": "algo ocorreu errado e eu não consegui pegar nada para você. tente novamente, mas se o problema continuar, {ContactLink}.",
+ "ErrorUnsupported": "parece que esse serviço ainda não é suportado ou seu link está inválido. você colou o link certo?",
+ "ErrorBrokenLink": "{s} é suportado, mas há algo de errado com seu link. talvez você não copiou ele inteiro?",
+ "ErrorNoLink": "não consigo adivinhar o que você quer baixar! por favor me dê um link :(",
+ "ErrorPageRenderFail": "se você está lendo isso, então há algo de errado com a renderização da página. por favor {ContactLink}. certifique-se de fornecer o domínio onde esse erro está presente e o hash do commit atual. ({s}). obrigado(a) antecipadamente. :D",
+ "ErrorRateLimit": "você está fazendo muitas requisições. tente novamente em breve!",
+ "ErrorCouldntFetch": "não consegui encontrar nada sobre esse link. certifique-se que ele funciona e tente novamente! tenha em mente que alguns conteúdos podem ter restrições de região.",
+ "ErrorLengthLimit": "não consigo processar vídeos mais longos que {s} minutos, escolha algo mais curto!",
+ "ErrorBadFetch": "algo deu errado quando eu tentei pegar informações sobre seu link. você tem certeza que funciona? confire, e tente novamente.",
+ "ErrorNoInternet": "não há internet ou a api do cobalt está temporariamente indisponível. consulte sua conexão e tente novamente.",
+ "ErrorCantConnectToServiceAPI": "não consegui conectar a api de serviço. talvez tenha caído, ou o cobalt foi bloqueado. tente novamente, mas se o erro persistir, {ContactLink}.",
+ "ErrorEmptyDownload": "não consigo ver nada que eu poderia baixar no link. tente um diferente!",
+ "ErrorLiveVideo": "esse é um vídeo ao vivo, eu ainda vou aprender como ver o futuro. espere a transmissão acabar e tente novamente!",
+ "SettingsAppearanceSubtitle": "aparência",
+ "SettingsThemeSubtitle": "tema",
+ "SettingsFormatSubtitle": "formatar",
+ "SettingsQualitySubtitle": "qualidade",
+ "SettingsThemeAuto": "auto",
+ "SettingsThemeLight": "claro",
+ "SettingsThemeDark": "escuro",
+ "SettingsKeepDownloadButton": "manter >> visível",
+ "AccessibilityKeepDownloadButton": "manter o botão de download sempre visível",
+ "SettingsEnableDownloadPopup": "perguntar como salvar",
+ "AccessibilityEnableDownloadPopup": "perguntar o que fazer com os downloads",
+ "SettingsQualityDescription": "se a qualidade selecionada não estiver disponível, a mais próxima será usada.",
+ "NoScriptMessage": "cobalt usa javascript para requisições de api e interações na interface. você precisa permitir o javascript para utilizar esse site. não tem scripts maliciosos, prometo de dedinho.",
+ "DownloadPopupDescriptionIOS": "como salvar no fotos:\n1. adicione atalho salvar no fotos.\n2. aperte o botão \"compartilhar\" acima desse texto.\n3. selecione \"salvar em fotos\" na aba compartilhar.\n\ncomo salvar nos arquivos:\n1. adicione atalho salvar nos arquivos.\n2. aperte o botão \"compartilhar\" acima desse texto.\n3. selecione \"salvar em arquiovs\" na aba compartilhar.\n4. selecione uma pasta para salvar o arquivo e aperte \"abrir\".\n\nambos atalhos podem apenas ser utilizados pelo web app do cobalt.",
+ "DownloadPopupDescription": "o botão de download abre uma nova aba com o arquivo solicitado. você pode desabilitar esse popup nas configurações.",
+ "ClickToCopy": "clique para copiar",
+ "Download": "download",
+ "CopyURL": "copiar",
+ "AboutTab": "sobre",
+ "ChangelogTab": "changelog",
+ "DonationsTab": "doações",
+ "SettingsVideoTab": "vídeo",
+ "SettingsAudioTab": "audio",
+ "SettingsOtherTab": "outro",
+ "ChangelogLastMajor": "versão atual & commit",
+ "AccessibilityModeToggle": "alternar modo de download",
+ "DonateLinksDescription": "esse é o melhor jeito de doar se você quer que eu receba sua doação diretamente.",
+ "SettingsAudioFormatBest": "melhor",
+ "SettingsAudioFormatDescription": "quando o formato \"melhor\" é selecionado, você recebe o áudio exatamente como está no lado do serviço, sem reencodificação. todo o resto será reencodificado.",
+ "Keyphrase": "salve o que você ama",
+ "ErrorPopupCloseButton": "entendi",
+ "ErrorLengthAudioConvert": "eu não consigo converter um áudio maior que {s} minutos. escolha o formato \"melhor\" se você deseja evitar limitações!",
+ "SettingsAudioFullTikTok": "audio completo",
+ "SettingsAudioFullTikTokDescription": "baixa o som original usado no vídeo, sem quaisquer alterações feitas pelo autor da postagem.",
+ "ErrorCantGetID": "não consegui obter todas as informações do link encurtado. certifique-se de que ele funcione ou tente um link completo! se o problema persistir, {ContactLink}.",
+ "ErrorNoVideosInTweet": "não consegui encontrar nenhum conteúdo de mídia neste tweet. tente outro!",
+ "ImagePickerTitle": "escolher imagens para baixar",
+ "ImagePickerDownloadAudio": "baixar áudio",
+ "ImagePickerExplanationPC": "clique com botão direito na imagem para salvar.",
+ "ImagePickerExplanationPhone": "pressione e segure uma imagem para salvá-la.",
+ "ErrorNoUrlReturned": "não recebi um link de download do servidor. isso nunca deveria acontecer. tente novamente, mas se ainda não funcionar, {ContactLink}.",
+ "ErrorUnknownStatus": "recebi uma resposta que não consigo processar. isso nunca deveria acontecer. tente novamente, mas se ainda não funcionar, {ContactLink}.",
+ "PasteFromClipboard": "colar",
+ "ChangelogOlder": "versões anteriores",
+ "ChangelogPressToExpand": "expandir",
+ "Miscellaneous": "diversos",
+ "ModeToggleAuto": "auto",
+ "ModeToggleAudio": "áudio",
+ "MediaPickerTitle": "escolha o que salvar",
+ "MediaPickerExplanationPC": "clique ou clique com botão direito para salvar o que você quer.",
+ "MediaPickerExplanationPhone": "aperte ou aperte e segure para baixar o que você quer.",
+ "TwitterSpaceWasntRecorded": "esse espaço do twitter não foi gravado, então não há nada para baixar. tente outro!",
+ "ErrorCantProcess": "não consegui processar sua requisição :(\nvocê pode tentar novamente, mas se o problema continuar, por favor {ContactLink}.",
+ "ChangelogPressToHide": "recolher",
+ "Donate": "doar",
+ "DonateSub": "ajude a manter online",
+ "DonateExplanation": "cobalt não empurra anúncios na sua cara e não vende seus dados pessoais, o que significa que é completamente gratuito para usar para todos. mas o desenvolvimento e a manutenção de um serviço com muita mídia, usado por mais de 750 mil pessoas, é bastante caro, tanto em termos de tempo quanto de dinheiro.\n\nse o Cobalt te ajudou no passado e você quer mantê-lo crescendo e evoluindo, você pode retribuir fazendo uma doação!\n\nsua doação ajudará todos os usuários do Cobalt: educadores, estudantes, criadores de conteúdo, artistas, músicos e muitos outros!\n\nno passado, as doações permitiram que o cobalt:\n*; aumentasse a estabilidade e o tempo de atividade para quase 100%.\n*; acelerasse TODOS os downloads, especialmente os mais pesados.\n*; abrisse a api para uso público gratuito.\n*; suportasse vários grandes influxos de usuários sem nenhum tempo de inatividade.\n*; adicionasse recursos que demandam muita capacidade (como a conversão de gifs).\n*; continue melhorando nossa infraestrutura.\n*; mantenha os desenvolvedores felizes.\n\ncada centavo importa e é extremamente apreciado, você pode realmente fazer a diferença!\n\nse você não puder doar, compartilhe o cobalt com um amigo! não usamos anúncios em nenhum lugar, então o cobalt é divulgado pelo boca a boca.\ncompartilhar é a maneira mais fácil de ajudar a alcançar o objetivo de uma internet melhor para todos.",
+ "DonateVia": "doar via",
+ "DonateHireMe": "...ou você pode me contratar :)",
+ "SettingsVideoMute": "silenciar áudio",
+ "SettingsVideoMuteExplanation": "remove áudio do download de vídeos quando possível.",
+ "ErrorSoundCloudNoClientId": "não consegui pegar o token que é necessário para baixar faixas do soundcloud. tente novamente, mas se o problema persistir, {ContactLink}.",
+ "CollapseServices": "serviços suportados",
+ "CollapseSupport": "suporte & código fonte",
+ "CollapsePrivacy": "política de privacidade",
+ "ServicesNote": "esta lista não é definitiva e continua a expandir-se com o tempo. certifique-se de verificá-la de vez em quando!",
+ "FollowSupport": "mantenha contato com o cobalt para notícias, suporte e mais:",
+ "SourceCode": "explore o código-fonte, reporte problemas, dê uma estrela ou faça um fork no repositório:",
+ "PrivacyPolicy": "a política de privacidade do cobalt é simples: nenhum dado sobre você é coletado ou armazenado. nenhum, nada, zero, zilch, nothing.\no que você baixa é unicamente da sua conta, não minha ou de mais ninguém.\n\nse o seu download requer renderização, os dados sobre o conteúdo solicitado são criptografados e temporariamente armazenados na RAM do servidor. isso é necessário para que essa funcionalidade funcione.\n\ndados criptografados são armazenados por 90 segundos e então permanentemente removidos.\n\nos dados armazenados só podem ser descriptografados com chaves de criptografia exclusivas do seu link de download. além disso, a base de código oficial do cobalt não fornece uma maneira de ler dados armazenados temporariamente fora das funções de processamento.\n\nvocê pode conferir o código fonte do coblat por conta própria e verificar que tudo está conforme declarado.",
+ "ErrorYTUnavailable": "esse vídeo do youtube está indisponível, pode ser devido a restrição de região ou idade. tente outro!",
+ "ErrorYTTryOtherCodec": "não consegui encontrar nada para baixar com as suas configurações. tente outro codec ou qualidade!\n\nas vezes a api do youtube age inesperadamente. tente novamente ou tente outras configurações.",
+ "SettingsCodecSubtitle": "codec do youtube",
+ "SettingsCodecDescription": "h264: geralmente melhor suporte em players, mas a qualidade atinge no máximo 1080p.\nav1: suporte ruim em players, mas suporta 8k e HDR.\nvp9: geralmente maior bitrate, preserva mais detalhes. suporta 4k e HDR.\n\nescolha h264 se quiser a melhor compatibilidade com editores/players/mídias sociais.",
+ "SettingsAudioDub": "faixa de áudio do youtube",
+ "SettingsAudioDubDescription": "define qual faixa de áudio será usada. se a faixa dublada não estiver disponível, o idioma original do vídeo será usado.\n\noriginal: idioma original do vídeo é usado.\nauto: idioma padrão do navegador (e do cobalt) é usado.",
+ "SettingsDubDefault": "original",
+ "SettingsDubAuto": "auto",
+ "SettingsVimeoPrefer": "tipo de downloads do vimeo",
+ "SettingsVimeoPreferDescription": "progressive: link direto para o arquivo no CDN do vimeo. qualidade máxima é 1080p.\ndash: vídeo e áudio são mesclados pelo cobalt em um único arquivo. qualidade máxima é 4k.\n\nescolha \"progressive\" se quiser a melhor compatibilidade com editores/players/mídias sociais. Se o download progressivo não estiver disponível, o dash será usado.",
+ "ShareURL": "compartilhar",
+ "ErrorTweetUnavailable": "não consegui encontrar nada sobre este tweet. isso pode ser porque sua visibilidade está limitada. tente outro!",
+ "ErrorTwitterRIP": "o twitter restringiu o acesso a qualquer conteúdo para usuários não autenticados. embora haja uma maneira de obter tweets regulares, espaços, infelizmente, são impossíveis de obter no momento. estou buscando possíveis soluções.",
+ "PopupCloseDone": "feito",
+ "Accessibility": "acessibilidade",
+ "SettingsReduceTransparency": "reduzir transparência",
+ "SettingsDisableAnimations": "desativar animações",
+ "FeatureErrorGeneric": "seu navegador não autoriza ou suporta esse tipo de funcionalidade. confira se há atualizações e tente novamente!",
+ "ClipboardErrorFirefox": "você está usando firefox onde toda a funcionalidade de leitura da área de transferência está desativada.\n\nvocê pode arrumar isso seguindo os passos listados aqui!\n\n...ou você pode colar o link manualmente.",
+ "ClipboardErrorNoPermission": "o cobalt não consegue acessar o item mais recente da sua área de transferência sem sua permissão.\n\nse você não quiser dar acesso, apenas cole o link manualmente.\n\nse você quiser, vá para as configurações do site e ativa a permissão da área de transferência (clipboard)",
+ "SupportSelfTroubleshooting": "está enfrentando problemas? tente uma destas opções primeiro:",
+ "AccessibilityGoBack": "voltar e fechar o popup",
+ "CollapseKeyboard": "atalhos do teclado",
+ "KeyboardShortcutsIntro": "use o cobalt ainda mais rápido com atalhos de teclado:",
+ "KeyboardShortcutQuickPaste": "cole o link",
+ "KeyboardShortcutClear": "limpar a área de entrada de links",
+ "KeyboardShortcutClosePopup": "fechar todos os popups",
+ "CollapseLegal": "termos e ética",
+ "FairUse": "cobalt é uma ferramenta web que facilita o download de conteúdos da internet e assumezero responsabilidade. os servidores de processamento funcionam como proxies limitados, portanto, nenhum conteúdo de mídia é armazenado em cache ou guardado.\n\nvocê (usuário final) é responsável pelo que baixa, como usa e distribui esse conteúdo. por favor, seja consciente ao usar o conteúdo de outros e sempre credite os criadores originais.\n\nquando usado para fins educacionais (palestra, lição de casa, etc.), anexe o link da fonte.\n\no uso justo e os créditos beneficiam a todos.",
+ "SettingsDisableMetadata": "não adicionar metadata",
+ "NewDomainWelcomeTitle": "olá!",
+ "NewDomainWelcome": "cobalt está mudando! mesmas funcionalidades, mesmo proprietário, simplesmente um domínio mais fácil de lembrar. e ainda sem anúncios.\n\ncobalt.tools é o novo domínio principal, ou seja, onde você está agora. certifique-se de atualizar seus favoritos e reinstalar o aplicativo web!",
+ "DataTransferSuccess": "aliás, sua configurações foram transferidas automaticamente :)",
+ "DataTransferError": "algo deu errado ao transferir suas preferências. você terá que abrir as configurações e configurar o cobalt manualmente.",
+ "SupportNotAffiliated": "o cobaltnão é afiliado com nenhum dos serviços listados acima.",
+ "SponsoredBy": "patrocinado por",
+ "FilenameTitle": "estilo do nome do arquivo",
+ "FilenamePatternClassic": "clássico",
+ "FilenamePatternPretty": "bonito",
+ "FilenamePatternBasic": "básico",
+ "FilenamePatternNerdy": "nerd",
+ "FilenameDescription": "clássico: padrão de nome de arquivo do cobalt.\nbásico: título e informações básicas entre colchetes.\nbonito: título e informações entre colchetes.\nnerd: título e todas informações entre colchetes.\n\nalguns serviços não suportam nomes de arquivos ricos e sempre usam o estilo clássico.",
+ "Preview": "prévia",
+ "FilenamePreviewVideoTitle": "Título do Vídeo",
+ "FilenamePreviewAudioTitle": "Título do Áudio",
+ "FilenamePreviewAudioAuthor": "Autor do Áudio",
+ "StatusPage": "página de status do serviço",
+ "TroubleshootingGuide": "guia de auto-solução de problemas",
+ "DonateImageDescription": "gato dormindo no teclado de um laptop e digitando letras repetidamente",
+ "SettingsTwitterGif": "converte gifs para .gif",
+ "SettingsTwitterGifDescription": "converter vídeos em loop para .gif reduz a qualidade e aumenta significativamente o tamanho do arquivo. se você quer a melhor eficiência, mantenha essa configuração desativada.",
+ "ErrorTweetProtected": "este tweet é de uma conta privada, então eu não consigo ver. tente outro!",
+ "ErrorTweetNSFW": "este tweet possui contúdo sensível, então eu não consigo ver. tente outro!",
+ "UpdateEncryption": "criptografia e novos serviços",
+ "PrivateAnalytics": "análises privadas",
+ "SettingsDisableAnalytics": "optar por não participar das análises privadas",
+ "SettingsAnalyticsExplanation": "ative esta opção se não quiser ser incluído nas estatísticas de tráfego anônimas. leia mais sobre isso em sobre > política de privacidade (resumidamente: nada sobre você é armazenado ou rastreado, nenhum cookie é usado).",
+ "AnalyticsDescription": "cobalt usa uma instância auto-hospedada do plausible para obter um número aproximado de quantas pessoas o utilizam.\n\nplausible é totalmente compatível com GDPR, CCPA e PECR, não usa cookies e nunca armazena nenhuma informação identificável, nem mesmo seu endereço ip.\n\ntodos os dados são agregados e nunca personalizados. nada sobre o que você baixa é salvo em lugar nenhum. é usado apenas para estatísticas de tráfego anônimas, nada mais.\n\nplausible é totalmente open source, assim como o Cobalt, e se você quiser saber mais sobre ele, pode conferiraqui. se desejar optar por não participar das estatísticas de tráfego, pode fazê-lo em configurações > outros."
+ }
+}