diff --git a/app/src/main/res/layout/activity_widget_settings.xml b/app/src/main/res/layout/activity_widget_settings.xml
index 61608b8d..15426682 100644
--- a/app/src/main/res/layout/activity_widget_settings.xml
+++ b/app/src/main/res/layout/activity_widget_settings.xml
@@ -21,7 +21,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/menu_widget_settings"
- app:title="Widget settings" />
+ app:title="@string/widgets__settings" />
diff --git a/buildlogic/src/main/java/com/twofasapp/buildlogic/version/AppConfig.kt b/buildlogic/src/main/java/com/twofasapp/buildlogic/version/AppConfig.kt
index 6c49f583..e9c2fccd 100644
--- a/buildlogic/src/main/java/com/twofasapp/buildlogic/version/AppConfig.kt
+++ b/buildlogic/src/main/java/com/twofasapp/buildlogic/version/AppConfig.kt
@@ -7,7 +7,7 @@ object AppConfig {
private const val verMajor = 4
private const val verMinor = 2
- private const val verPatch = 4
+ private const val verPatch = 6
private const val verInternal = 0
const val versionCode = verMajor * 1000000 + verMinor * 10000 + verPatch * 100 + verInternal
diff --git a/core/locale/src/main/res/values-de/strings.xml b/core/locale/src/main/res/values-de-rDE/strings.xml
similarity index 98%
rename from core/locale/src/main/res/values-de/strings.xml
rename to core/locale/src/main/res/values-de-rDE/strings.xml
index 820f96c9..8c59f70e 100644
--- a/core/locale/src/main/res/values-de/strings.xml
+++ b/core/locale/src/main/res/values-de-rDE/strings.xml
@@ -5,7 +5,7 @@
Release: Working copy
Locale: de-DE, German (Germany)
Exported by: rafakob
- Exported at: Thu, 23 Feb 2023 14:33:22 -0800
+ Exported at: Thu, 09 Mar 2023 00:56:28 -0800
-->
Es gibt keinen korrekten QR-Code in dem ausgewählten Bild. Bitte versuch ein anderes Bild.
Dienst auswählen
@@ -681,8 +681,8 @@
Google Drive Sync
Möchtest du deine Sicherungsdatei aus Google Drive löschen?
Google Sync wird deaktiviert sein. Deine Tokens werden lokal bestehen bleiben, aber die 2FAS App wird aus deinem Google Account auf diesem und deinen anderen synchronisierten Geräten ausgeloggt.
- Warten auf Synchronisierung…
- Synchronisiere…
+ Warten auf Synchronisierung...
+ Synchronisiere...
Du wirst eine verschlüsselte Sicherungsdatei importieren.
Wähle eine JSON Datei aus
Exportiere deine Konten von Aegis in eine unverschlüsselte JSON Datei und lade sie über die \"JSON Datei auswählen\" Option aus. Vergiss nicht nach einem erfolgreichen Import die Datei zu entfernen.
@@ -710,4 +710,12 @@
Ein SSL-Fehler ist aufgetreten, wodurch eine sichere Verbindung zum Server nicht hergestellt werden kann. Stelle sicher, dass du die neueste App-Version hast oder versuche, das Netzwerk zu ändern.
Die Datei, die du versuchst zu importieren, ist zu groß. Die Größenbeschränkung beträgt 10 MB.
Die Datei, die du versuchst zu importieren, ist ungültig oder beschädigt. Bitte wähle eine andere Datei.
+ Aktive Suche
+ Aktive Suche beim Starten
+ Läuft ab in:
+ Widget-Einstellungen
+ Eingabe muss eine Integer-Nummer sein
+ Eingabe muss eine Nummer sein
+ Eingabe darf nicht leer sein
+ Eingabe ist zu lang. Limit: %d
diff --git a/core/locale/src/main/res/values-pt-rPT/strings.xml b/core/locale/src/main/res/values-pt-rPT/strings.xml
new file mode 100644
index 00000000..9dd3f1f5
--- /dev/null
+++ b/core/locale/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,721 @@
+
+
+
+
+ Usada para digitalizar códigos QR.
+ Podes usar o Face ID para desbloqueares a aplicação.
+
+ 2FAS Authenticator
+ 2FA Authenticator (2FAS App)
+ OK
+ Adicionar
+
+ Cancelar
+ Notificações
+
+ %1$d de %2$d
+
+ O serviço já foi removido da cópia de segurança.
+
+ O serviço já foi modificado da cópia de segurança.
+
+ O utilizador está acima da cota no iCloud
+
+ O iCloud não está disponível
+
+ O iCloud foi desativado pelo utilizador
+
+ Cópia de Segurança 2FAS
+ Fechar
+ Continuar
+ Copiar
+ Remover
+ Dispensar
+ Concluído
+ Editar
+ Digitar código manualmente
+ Erro
+ Informação
+ Próximo
+ Aviso
+ Desligado
+ Ligado
+
+ Aponta a tua câmara à tela para digitalizares o código QR
+ Renomear
+ Tentar novamente
+ Guardar
+ Digitalizar Código QR
+ Serviço
+ Definir
+ Saltar
+ Tokens
+ Atenção
+ Sem resultados
+ Customizar
+ Confirmar
+ Recusar
+
+ O texto fornecido é muito longo (máximo de %d caracteres)
+ Entendido!
+ A verificar...
+
+ Confirma a tua impressão digital para continuar.
+
+ Usa o teu PIN desta vez
+
+ És incrível!
+ O teu telemóvel acabou de se tornar numa privada e segura chave para os teus serviços online graças à aplicação 2FAS - confiada por mais de 3 milhões de utilizadores mundialmente.
+ Simples
+ Conecta o 2FAS com os teus serviços online. Ativa a segurança de dois fatores em segundos com o teu código QR.
+ Privado
+ O 2FAS respeita e protege a tua privacidade. Esta aplicação nunca irá coletar, processar, ou usar quaisquer dados pessoais.
+ Seguro
+ Os teus tokens estão guardados offline no armazenamento do teu dispositivo, por isso lembra-te de fazer uma cópia de segurança aos teus serviços! Utiliza a Sincronização através do iCloud e uma palavra-passe ou PIN para os proteger de acesso não autorizado e dano ao dispositivo.
+
+ Começa a usar o 2FAS
+ Termos de serviço
+ Conecta as tuas contas de serviços online com o 2FAS ou importa os teus tokens.
+ Conecta um novo serviço
+
+ Importa um ficheiro de cópia de segurança 2FAS
+
+ Importa do Google Authenticator
+
+ Não sabes o que fazer?
+
+ Exporta as tuas contas do Google Authenticator para um código QR através da opção \"Transferir Contas\". De seguida, captura a tela e usa o botão \"Escolher código QR\" abaixo. Se estiveres a importar códigos de outro dispositivo, usa o botão \"Digitalizar código QR\".
+
+ Escolher código QR
+
+ Digitalizar código QR
+
+ A adicionar um novo código
+
+ A Chave do Serviço foi copiada
+
+ Este token já está presente na lista
+ O Contador foi copiado
+ O Token foi copiado
+ O Token seguinte foi copiado
+
+ Queres adicionar este código: %s?
+
+ Abrir Definições
+ PIN incorreto
+ Mudar o PIN
+ Por favor, confirma que és o dono deste dispositivo
+
+ Por favor, confirma o teu novo PIN
+ Criar PIN
+ Por favor, digita o teu PIN atual
+
+ Por favor, digita o teu novo PIN
+
+ Por favor, digita o teu PIN
+
+ Muitas tentativas. Por favor, tenta novamente %s
+ Muitas tentativas. Por favor, tenta novamente em %s minutos.
+
+ Muitas tentativas. Por favor, tenta novamente mais tarde.
+
+ Muitas tentativas. Por favor, tenta em um minuto
+ Cópia de Segurança e Sincronização
+ Escolher tópico
+ Configura o serviço de e-mail e tenta novamente
+ Geral
+ Os serviços de e-mail não estão disponíveis
+ Problema
+ Segurança
+ Selecionar tamanho do PIN
+ Definições
+
+ Sugestão
+ Avançado
+ Widgets
+ Mostrar os serviços selecionados nos Widgets da Página Inicial
+
+ Depois de ativares os widgets, todos os teus tokens irão ser acessíveis sem precisar de código PIN.\n\nTens a certeza que queres ativar os widgets?
+ Mostrar token seguinte
+ Mostrar os tokens recebidos na lista.
+ Lixo
+ Restaurar
+ O Lixo está vazio
+ Partilhar aplicação
+
+ Tens a certeza que queres eliminar o token de:
+ Mover para o Lixo
+ Informação adicional
+ Escolher método
+ Chave de Serviço duplicada
+
+ Chave de Serviço incorreta (apenas números 2 a 7, letras), máx, 512 caracteres
+ Ok, vamos tentar novamente
+
+ Aponta a tua câmara ao ecrã para digitalizar o código QR
+
+ Chave do Serviço
+ Este código QR leva-te à App Store
+
+ Eliminar Token
+
+ Procurar serviço
+
+ Desculpa, o serviço não foi encontrado
+
+ Tenta novamente com um termo de pesquisa diferente
+ A chave é muito pequena. Mínimo 4 caracteres
+ Nome do Serviço
+
+ A chave de serviço do código digitalizado já está a ser utilizada em %s. Deves estar a digitalizá-lo novamente
+ Este código está incorreto ou não é suportado. Tenta novamente.
+ Tipo de Nome do Serviço
+ Digita o Nome do Serviço
+
+ Infelizmente, não sabemos esse serviço. Como queres nomeá-lo?
+
+ Não irás poder mais restaurar este token.
+ Cor do emblema
+ Mudar ícone da marca
+ Mudar nome
+ Informação do Serviço
+ Personalização
+ Ícone da marca
+ Nome
+
+ Eliminar este serviço da aplicação 2FAS
+
+ Nome (1 ou 2 caracteres):
+ Escolher cor do fundo:
+ %s foi adicionado
+ Próximo Token: %s
+ Valor do Token seguinte
+ Os meus Tokens
+ A eliminar grupo
+
+ Todos os tokens irão ser movidos para o grupo: \"Os meus tokens\"
+ Adicionar grupo
+ Nome do grupo:
+ Selecionar da Galeria
+ A câmara está indisponível
+
+ Verifica se a aplicação possuí as permissões necessárias nas Definições do Sistema
+ Não foram encontrados códigos QR
+
+ Não existe um código QR correto na imagem selecionada. Por favor tenta uma imagem diferente.
+ Selecionar serviço
+ Qual é o serviço que queres adicionar?
+ Digita este token novamente
+
+ Desbloqueia e digita este token novamente
+ Grupo
+ Selecionar grupo
+ Importar tokens 2FA da aplicação Google Authenticator
+ Este código QR permite importar tokens do Google Authenticator
+
+ %1$d de %2$d
+ Os tokens irão ser importados.
+ Ordenar por
+
+ A - Z
+
+ Z - A
+ Manual
+ Avançado
+
+ Alerta
+
+ Mudar definições avançadas não é recomendado. Fá-lo apenas quando o fornecedor do 2FA pedir e quando tiveres instruções claras.
+ Definições do token
+ Autenticação OTP
+ Algoritmo
+ Tempo de atualização
+ Número de dígitos
+ Contador
+ Contador inicial
+
+ %d s
+ HOTP
+ TOTP
+ Mudar definições avançadas não é recomendado. Fá-lo apenas quando o fornecedor do 2FA pedir e quando tiveres instruções claras.
+ Melhor prática
+ O serviço foi adicionado com sucesso. Nós recomendamos fortemente que tu
+ elimines o código QR da tua galeria.
+ Se alguém tiver acesso a este código QR, irão poder usar os códigos 2FA para este serviço.
+ Pedir um ícone
+ Avisa-nos no Discord
+ Entra no nosso servidor de Discord
+ e deixa os utilizadores votarem para os ícones pedidos.
+ ou
+ Avisa o fornecedor do serviço
+ Podes usar Redes Sociais ou e-mail e partilhar este texto com eles:
+ Olá! Estou a usar a aplicação 2FAS para entrar no teu serviço com autenticação de dois fatores. Contudo, o teu ícone está a faltar! Podes submeter o teu ícone aqui: https://2fas.com/yb
+ https://2fas.com/yb
+ Não te esqueças de mencionar a conta oficial da empresa!
+ Não consegues encontrar um ícone de uma marca na aplicação 2FAS?
+ Pedir um ícone de uma marca
+ Pedir um ícone de uma marca
+ Seleciona o método pedido
+ Pedir um ícone enquanto utilizador
+ Envia um ícone enquanto empresa
+
+ Não vais conseguir entrar na tua conta %s sem este token enquanto tiveres ativado a autenticação de dois fatores para essa conta.
+ Mostrar a Chave do Serviço
+ Copiar a Chave do Serviço
+
+ Contador com os segundos restantes para a mudança do token
+ Remover
+ Serviço removido
+
+ Este campo contém uma Chave Secreta. Para a revelar, usa o botão Mostrar. Só irá funcionar se tiveres configurado o PIN da aplicação para o ecrã bloqueado
+ Nome do serviço: %s
+ Informação adicional: %s
+ Token %s. Clica para copiares
+ Editar %s
+ Etiqueta do serviço com o nome %1$s e cor %2$s
+ Ícone do serviço %s
+ Selecionado
+ Não selecionado
+ Cor do emblema: %s
+ Dispensado
+ Apenas números de 2 a 9, letras. Pelo menos 4 caracteres
+ Adicionar serviço
+ Adicionar grupo
+
+ Usa o botão Adicionar Serviço para adicionar um novo serviço
+ Sem resultados para a pesquisa
+
+ Usa Ordenar Por para definir a ordenação dos serviços
+ A carregar conteúdo
+ Não foi possível fazer a cópia de segurança dos tokens porque a chave secreta de \"%s\" contém caracteres inválidos. Remove-a da lista e tenta novamente.
+ Importar
+ Exportar
+ A cópia de segurança 2FAS irá ser desativada para proteger a sua integridade
+ Erro ao exportar o ficheiro
+ A importação foi concluída com sucesso
+
+ Uma outra aplicação está a usar a câmara. Se fechar outras aplicações não funcionar, tenta reiniciar o dispositivo
+
+ A câmara não está disponível devido a sobrecarga do sistema. Tenta reiniciar o dispositivo
+ Não é possível iniciar a câmara. Tenta reiniciar o dispositivo
+ Não é possível iniciar a câmara em modo de ecrã dividido. Abre a aplicação em tela cheia e tenta novamente
+ Como restaurar a aplicação 2FAS?
+ Restauro da aplicação
+
+ Se te esqueceste do PIN ou queres formatar a aplicação 2FAS, tens de reinstalar a aplicação.
+
+ Avisamos que se não tiveres uma cópia de segurança e formatares a aplicação, irás perder o acesso aos teus códigos. E, por isso, irás perder acesso às tuas contas protegidas por autenticação de dois fatores.
+
+ Se tiveres uma cópia de segurança, não te preocupes, irás poder restaurar todos os teus códigos.
+ Cópia de Segurança na nuvem
+ Sincronização através do iCloud
+ RECOMENDAÇÃO: A sincronização através do iCloud mantém os teus tokens seguros em caso de perca ou dano do teu dispositivo. Deixa-a ligada.
+ Ficheiro de Cópia de Segurança
+
+ Usa o Ficheiro de Cópia de Segurança para teres acesso offline dos teus tokens
+ Remoção da Cópia de Segurança
+ Eliminar cópia de segurança 2FAS
+ Atenção! Se eliminares a Cópia de Segurança 2FAS, irás apagar também todos os tokens de outros dispositivos sincronizados com esta conta. Para preservar os tokens noutros dispositivos, verifica que desativaste a cópia de segurança 2FAS antes da eliminação
+
+ Eu quero eliminar esta Cópia de Segurança
+ Exportar cópia de segurança para ficheiro
+
+ Podes importar ficheiros exportados de outros dispositivos com a aplicação 2FAS
+ Exportar para ficheiro
+ Verificar PIN
+ Guardar ficheiro
+ Importar ficheiro de cópia de segurança
+
+ Irás importar um ficheiro de cópia de segurança a conter
+ Importar ficheiro
+ Escolher outro ficheiro
+ Nada para importar
+ Erro de ficheiro!
+
+ Os serviços do ficheiro irão ser fundidos com os da aplicação
+ Ou este ficheiro está vazio, ou todos os serviços dentro dele já se encontram disponíveis na aplicação
+ Precisas de uma versão mais recente da aplicação para importares o conteúdo do ficheiro. Podes encontrar a versão mais recente na App Store
+ Não foi possível ler este ficheiro. Pode estar danificado, ou ocorreu um erro ao acessá-lo. Por favor escolhe outro
+ Palavra-passe
+ Repetir palavra-passe
+ Caráter incorreto. Usa letras de A-Z, dígitos e caracteres especiais: -_/!#$%&+*~@?=^.,\'(){}[]:;<>|
+ A frase fornecida é muito curta (mín. 3 caracteres)
+ As palavras-passes não coincidem
+ Guardar e exportar
+ Para aumentar a proteção do teu ficheiro de cópia de segurança, por favor, define a palavra-passe
+ Digita a palavra-passe para este ficheiro de cópia de segurança para proceder ao processo de importação
+ Define uma palavra-passe para este ficheiro de cópia de segurança
+ Palavra-passe Incorreta
+
+ %d novo(s) serviço(s)
+
+ %d serviço(s) importado(s) de ficheiro
+
+ Existe um problema com o iCloud. Verifica as definições do sistema
+
+ Este ficheiro está numa versão de formato mais recente do que a aplicação suporta
+
+ Este ficheiro está encriptado. Nós suportamos apenas ficheiros não encriptados.
+ Copiar token
+
+ Sim, eu quero eliminar este serviço
+ Neutro
+ Azul claro
+ Índigo
+ Roxo
+ Turquesa
+ Verde
+ Vermelho
+ Laranja
+ Amarelo
+ Conhecimento
+ Ajuda e Partilha
+ Diz a um amigo
+ Escreve uma crítica
+ Sobre
+ Política de Privacidade
+ Termos de Serviço
+ Versão da aplicação: %s
+ Sem limite
+ Código PIN
+ Segurança da aplicação
+ Definições de bloqueio
+ Face ID
+ Touch ID
+
+ Bloquear após X tentativas falhadas:
+ Selecionar o número máximo de tentativas de códigos mal sucedidos antes de bloquear a aplicação
+ Tempo de bloqueio
+ 3 minutos
+ 5 minutos
+ 10 minutos
+ Máximo de tentativas falhadas
+ Código de 4 dígitos
+ Código de 6 dígitos
+ Autenticação Biométrica
+ Doações
+ Doar a 2FAS
+ Nova versão
+ Uma nova versão de 2FAS está disponível na AppStore. Atualiza agora!
+ Atualiza agora
+
+ Saltar esta versão
+
+ Atualizar depois
+ Extensão do Navegador de Internet
+ Extensão de Navegador de Internet 2FAS
+ Instala a extensão do navegador de Internet 2FAS no teu computador
+ Conecta-a com a aplicação 2FAS
+ Mais informação:
+ 2fas.com/be
+ Conecta com o navegador de Internet
+ https://www.2fas.com/be
+ Conexão bem sucedida!
+ O 2FAS irá enviar uma notificação sempre que entrares nos teus serviços online ao usar este navegador de internet. Não irás precisar mais de digitar novamente os teus tokens a cada uso.
+ A conexão falhou :(
+ Este código QR não foi reconhecido, e a 2FAS não conseguiu conectar este dispositivo com a extensão do navegador de Internet. Por favor, tenta novamente.
+
+ Já está conectado!
+
+ Esta extensão do navegador de Internet já está conectada com este dispositivo.
+ Entrar em contacto
+ Conexão com o navegador de Internet
+
+ Dispositivos conectados (navegadores de Internet)
+ Adicionar novo
+
+ Nome do dispositivo
+ Nome do dispositivo
+ Nome
+ Este nome irá ajudar-te a identificar este dispositivo entre outros conectados com a extensão do navegador de Internet 2FAS
+ Definições da Extensão do Navegador de Internet
+ <NOME_DESCONHECIDO>
+ %1$s pediu um token 2FA para %2$s. Seleciona um serviço para autorizar e guardar com este domínio.
+ Pedido do Navegador de Internet
+
+ O token foi enviado com sucesso!
+ Erro ao enviar o código. %s
+ Eliminar dispositivo
+ Tens a certeza que queres eliminar este dispositivo?
+ Data de conexão
+ Esquecer este navegador de internet
+
+ Lista de domínios conectados
+ Eliminar domínio?
+ A próxima vez que usares a extensão do navegador para entrar em %s, irá te ser pedido para conectares este domínio novamente.
+ Notificações
+ Para teres acesso a funções como a Extensão do Navegador de Internet, a aplicação precisa de acesso para enviar notificações. Podes mudar esta definição nas Definições do Sistema a qualquer momento.
+ Pedido expirado
+ Pedido de Token 2FA
+ Queres partilhar o código 2FA de\u0020
+ Sem notificações
+ 2 F A S
+ 2FAS
+ O Google Drive não está disponível
+ O Google Drive foi desativado pelo utilizador
+ Precisas de uma versão mais recente da aplicação para importares o conteúdo do ficheiro. Podes encontrar a versão mais recente na Google Play Store
+ Este código QR leva-te à Google Play Store
+ Os teus tokens estão guardados offline no armazenamento do teu dispositivo, por isso lembra-te de fazer uma cópia de segurança aos teus serviços! Utiliza a Sincronização através do Google Drive e uma palavra-passe ou PIN para os proteger de acesso não autorizado e dano ao dispositivo.
+ Uma nova versão de 2FAS está disponível na Google Play Store. Atualiza agora!
+ O PIN não coincide! Por favor, tenta novamente.
+ Opções de Desenvolvedor
+ Importar tokens
+ Resultado da conexão
+ ATENÇÃO
+ Aponta a tua câmara para o código QR certo e digitaliza novamente.
+ Queres descartar as alterações?
+ Mudanças não guardadas
+ A chave tem um formato inválido
+ Erro de sistema! Não existe uma aplicação de galeria no sistema.
+ Permissão do Google Drive
+ Precisamos de permissão do Google Drive para guardar os ficheiros de cópia de segurança nos dados de aplicações.
+ É necessária uma conexão de Internet
+ Para sincronizares com o Google, precisas de uma conexão de Internet.
+ Para removeres o acesso do Google Drive, precisas de uma conexão de Internet.
+ Guarda e sincroniza automaticamente o teu ficheiro de cópia de segurança na pasta escondida no teu Google Drive. Só a aplicação 2FAS consegue aceder a esta pasta.
+ Ocorreu um erro na sincronização da cópia de segurança. Por favor, reinicia a aplicação depois de alguns minutos e tenta novamente.
+ Ocorreu um erro na criptografia da cópia de segurança. Por favor, coloca a tua palavra-passe novamente.
+ Ocorreu um erro na descriptografia da cópia de segurança. Por favor, coloca a tua palavra-passe novamente.
+ Existe um problema com o iCloud. Verifica as definições do sistema
+ Houve um problema com as permissões da tua conta do Google Drive. Tenta ativar e desativar a sincronização.
+ A tua cópia de segurança está protegida por palavra-passe. Liga-a e digita a tua palavra-passe.
+ A tua cópia de segurança está protegida por palavra-passe mas a que forneceste está incorreta. Liga-a e digita a tua palavra-passe.
+ Atribuição de Serviço
+ Personalização
+ Mudar emblema
+ Avançado
+ Pedir um ícone
+ Editar nome
+ Tens a certeza que queres eliminar este grupo?
+ O teu ficheiro de cópia de segurança está pronto para exportar
+ Exporta este ficheiro para manter os teus tokens 2FAS numa cópia de segurança segura. Irás poder importá-lo depois para este ou outros dispositivos com a aplicação 2FAS.
+ Exportar ficheiro sem palavra-passe (não recomendado)
+ O ficheiro irá ser sincronizado com a lista de serviços da aplicação.
+ Talvez depois
+ Ligar
+ Não foram adicionados serviços
+ RECOMENDAÇÃO: A sincronização através do Google Drive mantém os teus tokens seguros em caso de perca ou dano do teu dispositivo. Deixa-a ligada.
+ Estás a desligar a Sincronização do Google Drive?
+ Os tokens 2FA irão continuar no teu dispositivo e no teu Google Drive, mas não irão ser sincronizados. Irás também desconectar a tua Conta Google.
+ Lembra-te, em caso de perca ou dano deste dispositivo ou a eliminação da aplicação, poderás não conseguir recuperar os teus tokens, e irás perder acesso às tuas contas online protegidas com 2FA.
+ Protege um ficheiro de cópia de segurança do Google Drive com uma palavra-passe
+ Eliminar palavra-passe
+ Eliminar a palavra-passe do ficheiro da cópia de segurança do teu Google Drive
+ Conta Google
+ Última sincronização
+ O 2FAS irá enviar uma notificação sempre que entrares nos teus serviços online ao usar este navegador de internet. Não irás precisar mais de digitar novamente os teus tokens a cada uso.
+ Nome do Navegador de Internet
+ Autenticar
+ Usa as tuas credenciais biométricas
+ Licenças de código aberto
+ Podes importar os teus tokens para a 2FAS de aplicações diferentes. Escolhe uma aplicação da lista e segue as instruções.
+ Selecionar aplicação
+ Google Authenticator
+ Aegis
+ Raivo OTP
+ 2FAS Auth
+ Sim
+ Não
+ Procurar
+ Nenhuma aplicação suporta esta ligação
+ Permissão da Câmara
+ A permissão da câmara é necessária para digitalizares códigos QR. Se quiseres usar esta função, vai a Informações da Aplicação, Permissões e ativa a Câmara.
+ Desativar PIN
+ Por favor digita o teu novo PIN de %s
+ PIN incorreto! Por favor tenta outra vez
+ Biometria
+ Ajuda 2FAS
+ Opções de Desenvolvedor
+ Bloqueio Biométrico
+ Tema
+ Auto
+ Auto - Definição do Sistema
+ Escuro
+ Claro
+ O token foi copiado para a área de transferência!
+ O token seguinte foi copiado para a área de transferência!
+ Queres eliminar permanentemente este serviço de 2FA?
+ Adicionar manualmente
+ Este código QR não funciona!
+
+ Não foi possível ler o código QR da imagem!
+ Tenta selecionar uma imagem diferente.
+ Eliminar serviço permanentemente
+
+ O serviço não foi adicionado porque a Chave de Serviço é inválida. Tenta novamente.
+
+ Um serviço com esta chave já existe. Queres sobrepô-lo?
+ A chave contém caracteres inválidos
+ Mostrar a Chave do Serviço
+
+ A tua Chave de Serviço está protegida. Por favor, adiciona um PIN ou um bloqueio por impressão digital para a ver.
+ A lista de serviços está vazia
+ Usa o butão \"+\" para adicionar um novo serviço
+ Não irás poder entrar na tua conta %s sem este token enquanto tiveres a autenticação de dois fatores ativada para essa conta.\n\nNão irás poder restaurar este token do lixo da 2FAS.
+ Os serviços foram importados com sucesso!
+
+ Precisas de uma conexão de Internet para sincronizar a tua cópia de segurança. Por favor, liga-te à Internet e tenta novamente.
+ Atualizar aplicação
+
+ Por favor atualiza para a versão mais recente de 2FAS para adquirir todas as funções e manter um nível de segurança elevado.
+ Estás a eliminar
+
+ da tua lista de serviços 2FAS.\n\nLembra-te, enquanto tiveres a autenticação de dois fatores ativada, não irás poder entrar na tua conta %s sem este token.
+ Apagar
+ Exportar
+ Partilhar
+ Importar cópia de segurança do ficheiro
+ Tu irás importar o ficheiro de cópia de segurança com
+ Importar
+ Os tokens visíveis no widget não são protegidos pelo teu código PIN. Tens a certeza que os queres apresentar no widget?
+ ATENÇÃO!
+ Sim, tenho a certeza
+ Cópia de Segurança 2FAS
+ Liga a cópia de segurança 2FAS e mantém os teus códigos seguros no Google Drive.
+ Desculpa, marca não encontrada
+
+ Seleciona que serviços vão estar visíveis no widget:
+ Desativar Sincronização
+ Cancelar
+ Definir palavra-passe
+ Eliminar cópia de segurança do Google Drive
+
+ Se eliminares este ficheiro do teu Google Drive, a sincronização em todos os teus dispositivos irá ser desativada, e os teus tokens irão permanecer apenas neste e noutros dispositivos através do armazenamento local.
+ A tua aplicação 2FAS já está conectada com este navegador de Internet.
+
+ Digitaliza o código QR novamente
+ Erro
+
+ O código QR digitalizado contém um formato que não é suportado. Por favor, tenta novamente.
+ Ocorreu um erro desconhecido ao digitalizar o código QR. Por favor, tenta novamente.
+ Usar o PIN desta vez
+ Ativar autenticação
+ Cancelar
+
+ Para ativar o Bloqueio por Biometria, precisas de ativar e definir um código PIN.
+ Seleciona o tempo para o qual a aplicação será bloqueada.
+ Parece que, ou ficaste sem espaço no disco, ou um evento no passado danificou a base de dados
+ A cópia de segurança na nuvem foi transferida para a nova versão. Atualiza a aplicação
+ A cópia de segurança na nuvem está encriptada. Atualiza a aplicação para suportar esta função
+ Continuar para a aplicação
+ Cancelar
+ Autorizar
+ Dispensar
+ Pedido enviado
+ Enviar token?
+ %1$s pediu um token 2FAS para %2$s
+ Erro ao enviar token
+ Este website não foi conectado
+ Abre a aplicação e seleciona um serviço para este domínio
+ Abre a aplicação e verifica se a extensão do navegador de Internet está devidamente conectada
+ Houve um problema com a conexão
+ Por favor tenta novamente
+ Erro
+ Para a extensão do navegador de internet funcionar, por favor adiciona serviços à aplicação 2FAS
+ Aprovar
+ Recusar
+ Liga o código PIN e a autenticação por Face ID para prevenir acesso não autorizado aos teus tokens neste dispositivo.
+ Liga o código PIN e a autenticação por Touch ID para prevenir acesso não autorizado aos teus tokens neste dispositivo.
+ O código fornecido está incorreto. Por favor, verifica novamente
+ O código fornecido expirou. Por favor contacta-nos para obter um novo
+ Não existe acesso à Internet. Por favor verifica a conexão e tenta novamente
+ Parece haver um problema com o nosso servidor. Se continuar por favor contacta-nos\u0020
+ A operação falhou
+ Registros enviados
+ Vamos verificar, mas pode demorar algum tempo.
+ Enviar
+ A enviar registros
+ O código fornecido pela equipa de ajuda foi preenchido automaticamente. Enviar registros?
+ Por favor digita ou cola o código fornecido pela nossa equipa de ajuda
+ Enviar registros
+ Vê só esta aplicação de autenticação em 2 fatores: https://2fas.com
+ Reconhecimentos
+ Importar de uma aplicação externa
+
+ - momento atrás
+ - momentos atrás
+
+
+ - %d minuto atrás
+ - %d minutos atrás
+
+
+ - %d hora atrás
+ - %d horas atrás
+
+
+ - %d dia atrás
+ - %d dias atrás
+
+
+ - %d semana atrás
+ - %d semanas atrás
+
+
+ - %d mês atrás
+ - %d meses atrás
+
+ Ocorreu um erro desconhecido! Tenta novamente!
+ O ficheiro foi guardado com sucesso!
+ Não foi possível partilhar o ficheiro!
+ Escreve a tua palavra-passe
+ Digita a palavra-passe de segurança para proceder com a remoção.
+ Digita a palavra-passe de segurança para proceder com a remoção do acesso ao Google.
+ Definições de sincronização
+ Ficheiro local
+ Sincronização através do Google Drive
+ Queres eliminar o teu ficheiro de cópia de segurança do Google Drive?
+ A sincronização através do Google irá ser desativada. Os teus tokens irão permanecer localmente, mas a aplicação 2FAS será desconectada da tua Conta Google, neste e noutros dispositivos sincronizados.
+ A aguardar para sincronizar...
+ A sincronizar...
+ Irás importar um ficheiro de cópia de segurança encriptado.
+ Escolhe o ficheiro JSON
+ Exporta as tuas contas da aplicação Aegis para um ficheiro JSON não encriptado e usa o botão \"Escolhe o ficheiro JSON\" para importá-lo. Lembra-te de remover o ficheiro após importares com sucesso.
+ Usa a opção \"Exporta OTPs para ficheiro ZIP\" nas definições da aplicação Raivo, guarda o ficheiro ZIP, extrai-o e usa o botão \"Escolhe o ficheiro JSON\" para importar o ficheiro JSON.
+ Contudo, não existe nenhum serviço que pode ser importado.
+ Tenta novamente
+ Prosseguir
+ A importar tokens 2FA da aplicação Google Authenticator
+ A importar tokens 2FA da aplicação Aegis
+ A importar tokens 2FA da aplicação Raivo
+ Este código QR permite importar tokens do Google Authenticator
+ Este ficheiro JSON permite importar tokens da aplicação Aegis.
+ Este ficheiro JSON permite importar tokens da aplicação Raivo.
+ Não foi possível ler nenhum token. Tenta selecionar um ficheiro diferente.
+ Informação da sincronização através do Google Drive
+ Tens a certeza? Sem a sincronização através do Google Drive, não irás poder restaurar os teus tokens se perderes ou formatares o teu telemóvel!
+ O código foi enviado com sucesso
+ Ocorreu um erro ao enviar o código
+ Adicionar novo serviço
+ Customizar serviço
+ Sugerido
+ Todos os serviços
+ Outros serviços
+ Erro SSL
+ Ocorreu um erro SSL, logo não foi possível fazer uma conexão segura ao servidor. Garante que tens a versão mais recente da aplicação ou tenta mudar a conexão de Internet.
+ O ficheiro que estás a tentar importar é muito grande. O limite de tamanho é 10 MB.
+ O ficheiro que estás a tentar importar é inválido ou está danificado. Por favor, escolhe outro ficheiro.
+ Pesquisa ativa
+ Pesquisa ativa ao iniciar
+ Expira em:
+ Definições do Widget
+ O valor tem de ser um número inteiro
+ O valor tem de ser um número
+ O valor não pode estar vazio
+ O valor é muito longo. Limite: %d
+
diff --git a/core/locale/src/main/res/values/strings.xml b/core/locale/src/main/res/values/strings.xml
index 97e55236..41226fb8 100644
--- a/core/locale/src/main/res/values/strings.xml
+++ b/core/locale/src/main/res/values/strings.xml
@@ -5,7 +5,7 @@
Release: Working copy
Locale: en, English
Exported by: rafakob
- Exported at: Thu, 23 Feb 2023 14:33:22 -0800
+ Exported at: Thu, 09 Mar 2023 00:56:28 -0800
-->
There is no correct QR code in the selected image. Please try a different image.
Select Service
@@ -712,4 +712,10 @@
The file you are trying to import is invalid or damaged. Please choose another file.
Active search
Active search on startup
+ Expires in:
+ Widget settings
+ Input must be integer number
+ Input must be a number
+ Input can not be empty
+ Input is too long. Limit: %d
diff --git a/design/src/main/java/com/twofasapp/design/compose/InputEntry.kt b/design/src/main/java/com/twofasapp/design/compose/InputEntry.kt
index 85e46459..7a617f2a 100644
--- a/design/src/main/java/com/twofasapp/design/compose/InputEntry.kt
+++ b/design/src/main/java/com/twofasapp/design/compose/InputEntry.kt
@@ -101,10 +101,10 @@ fun InputEntry(
if (num >= 0) {
null
} else {
- "Input must be integer number"
+ context.getString(com.twofasapp.resources.R.string.errors__input_integer_number)
}
} catch (e: Exception) {
- "Input must be integer number"
+ context.getString(com.twofasapp.resources.R.string.errors__input_integer_number)
}
}
@@ -113,7 +113,7 @@ fun InputEntry(
inputText.toFloat()
null
} catch (e: Exception) {
- "Input must be a number"
+ context.getString(com.twofasapp.resources.R.string.errors__input_number)
}
}
}
@@ -122,8 +122,10 @@ fun InputEntry(
isValid = isInCharactersLimit && validationResult == Validation.Ok && invalidInputTypeError == null
validationErrorText = when {
- isInCharactersLimit.not() && inputText.length > maxChars -> "Input is too long. Limit: $maxChars"
- isInCharactersLimit.not() && inputText.isEmpty() -> "Input can not be empty"
+ isInCharactersLimit.not() && inputText.length > maxChars -> context.getString(com.twofasapp.resources.R.string.errors__input_integer_number)
+ .format(maxChars)
+
+ isInCharactersLimit.not() && inputText.isEmpty() -> context.getString(com.twofasapp.resources.R.string.errors__input_empty)
invalidInputTypeError != null -> invalidInputTypeError
validationResult is Validation.Error -> validationResult.msg
?: validationResult.msgRes?.let { context.getString(it) }
diff --git a/design/src/main/java/com/twofasapp/design/compose/dialogs/InputDialog.kt b/design/src/main/java/com/twofasapp/design/compose/dialogs/InputDialog.kt
index 4d0c3bdc..7862482f 100644
--- a/design/src/main/java/com/twofasapp/design/compose/dialogs/InputDialog.kt
+++ b/design/src/main/java/com/twofasapp/design/compose/dialogs/InputDialog.kt
@@ -81,10 +81,10 @@ fun InputDialog(
if (num >= 0) {
null
} else {
- "Input must be integer number"
+ context.getString(com.twofasapp.resources.R.string.errors__input_integer_number)
}
} catch (e: Exception) {
- "Input must be integer number"
+ context.getString(com.twofasapp.resources.R.string.errors__input_integer_number)
}
}
@@ -93,7 +93,7 @@ fun InputDialog(
inputText.toFloat()
null
} catch (e: Exception) {
- "Input must be a number"
+ context.getString(com.twofasapp.resources.R.string.errors__input_number)
}
}
@@ -104,8 +104,11 @@ fun InputDialog(
isPositiveEnabled = isInCharactersLimit && validationResult == Validation.Ok && invalidInputTypeError == null
validationErrorText = when {
- isInCharactersLimit.not() && inputText.length > (maxLength ?: 999999) -> "Input is too long. Limit: $maxLength"
- isInCharactersLimit.not() && inputText.isEmpty() -> "Input can not be empty"
+ isInCharactersLimit.not() && inputText.length > (maxLength
+ ?: 999999) -> context.getString(com.twofasapp.resources.R.string.errors__input_integer_number)
+ .format(maxLength)
+
+ isInCharactersLimit.not() && inputText.isEmpty() -> context.getString(com.twofasapp.resources.R.string.errors__input_empty)
invalidInputTypeError != null -> invalidInputTypeError
validationResult is Validation.Error -> validationResult.msg
?: validationResult.msgRes?.let { context.getString(it) }
diff --git a/parsers/src/main/assets/icons/006a974f-48c9-4c94-b913-45dac870b52f.png b/parsers/src/main/assets/icons/006a974f-48c9-4c94-b913-45dac870b52f.png
new file mode 100644
index 00000000..e5407bb8
Binary files /dev/null and b/parsers/src/main/assets/icons/006a974f-48c9-4c94-b913-45dac870b52f.png differ
diff --git a/parsers/src/main/assets/icons/040cc5d8-5bb2-48e3-b2d9-1c9e030f2a32.png b/parsers/src/main/assets/icons/040cc5d8-5bb2-48e3-b2d9-1c9e030f2a32.png
new file mode 100644
index 00000000..2c502ee1
Binary files /dev/null and b/parsers/src/main/assets/icons/040cc5d8-5bb2-48e3-b2d9-1c9e030f2a32.png differ
diff --git a/parsers/src/main/assets/icons/11361929-9c24-4237-a01a-810000abaf29.png b/parsers/src/main/assets/icons/11361929-9c24-4237-a01a-810000abaf29.png
new file mode 100644
index 00000000..fbb4fe96
Binary files /dev/null and b/parsers/src/main/assets/icons/11361929-9c24-4237-a01a-810000abaf29.png differ
diff --git a/parsers/src/main/assets/icons/181d343a-a7fc-49f1-a34c-9c9c91052b04.png b/parsers/src/main/assets/icons/181d343a-a7fc-49f1-a34c-9c9c91052b04.png
new file mode 100644
index 00000000..9467ac1c
Binary files /dev/null and b/parsers/src/main/assets/icons/181d343a-a7fc-49f1-a34c-9c9c91052b04.png differ
diff --git a/parsers/src/main/assets/icons/2185da04-3d82-4fdc-9d20-3d670cf31073.png b/parsers/src/main/assets/icons/2185da04-3d82-4fdc-9d20-3d670cf31073.png
new file mode 100644
index 00000000..233c683a
Binary files /dev/null and b/parsers/src/main/assets/icons/2185da04-3d82-4fdc-9d20-3d670cf31073.png differ
diff --git a/parsers/src/main/assets/icons/2fab006b-31d8-4bce-9048-e93256412b08.png b/parsers/src/main/assets/icons/2fab006b-31d8-4bce-9048-e93256412b08.png
new file mode 100644
index 00000000..1bcdecaa
Binary files /dev/null and b/parsers/src/main/assets/icons/2fab006b-31d8-4bce-9048-e93256412b08.png differ
diff --git a/parsers/src/main/assets/icons/3625c1e6-c020-49c8-912e-ffd5f19f6f1f.png b/parsers/src/main/assets/icons/3625c1e6-c020-49c8-912e-ffd5f19f6f1f.png
new file mode 100644
index 00000000..26135954
Binary files /dev/null and b/parsers/src/main/assets/icons/3625c1e6-c020-49c8-912e-ffd5f19f6f1f.png differ
diff --git a/parsers/src/main/assets/icons/3d5b6e1f-5caa-43bc-a486-6307ed7c0bce.png b/parsers/src/main/assets/icons/3d5b6e1f-5caa-43bc-a486-6307ed7c0bce.png
new file mode 100644
index 00000000..9b3e116c
Binary files /dev/null and b/parsers/src/main/assets/icons/3d5b6e1f-5caa-43bc-a486-6307ed7c0bce.png differ
diff --git a/parsers/src/main/assets/icons/4b315879-fa9f-40d7-8b47-e4bd1d5e367b.png b/parsers/src/main/assets/icons/4b315879-fa9f-40d7-8b47-e4bd1d5e367b.png
new file mode 100644
index 00000000..7f705dd3
Binary files /dev/null and b/parsers/src/main/assets/icons/4b315879-fa9f-40d7-8b47-e4bd1d5e367b.png differ
diff --git a/parsers/src/main/assets/icons/4bb70c6d-ce78-4580-9aaa-e84b6355fc47.png b/parsers/src/main/assets/icons/4bb70c6d-ce78-4580-9aaa-e84b6355fc47.png
new file mode 100644
index 00000000..9259b506
Binary files /dev/null and b/parsers/src/main/assets/icons/4bb70c6d-ce78-4580-9aaa-e84b6355fc47.png differ
diff --git a/parsers/src/main/assets/icons/522719dd-9fd6-4829-b5d0-828bee041d96.png b/parsers/src/main/assets/icons/522719dd-9fd6-4829-b5d0-828bee041d96.png
new file mode 100644
index 00000000..f6323652
Binary files /dev/null and b/parsers/src/main/assets/icons/522719dd-9fd6-4829-b5d0-828bee041d96.png differ
diff --git a/parsers/src/main/assets/icons/56919108-2ea3-4c16-9ccb-3b196c4d7347.png b/parsers/src/main/assets/icons/56919108-2ea3-4c16-9ccb-3b196c4d7347.png
new file mode 100644
index 00000000..41a7cce7
Binary files /dev/null and b/parsers/src/main/assets/icons/56919108-2ea3-4c16-9ccb-3b196c4d7347.png differ
diff --git a/parsers/src/main/assets/icons/651adfb1-9ed0-4a58-bcab-7d1a24f6f19a.png b/parsers/src/main/assets/icons/651adfb1-9ed0-4a58-bcab-7d1a24f6f19a.png
new file mode 100644
index 00000000..ba729301
Binary files /dev/null and b/parsers/src/main/assets/icons/651adfb1-9ed0-4a58-bcab-7d1a24f6f19a.png differ
diff --git a/parsers/src/main/assets/icons/8cc53f9a-5965-4cd3-a466-816474270fb0.png b/parsers/src/main/assets/icons/8cc53f9a-5965-4cd3-a466-816474270fb0.png
new file mode 100644
index 00000000..0631dac9
Binary files /dev/null and b/parsers/src/main/assets/icons/8cc53f9a-5965-4cd3-a466-816474270fb0.png differ
diff --git a/parsers/src/main/assets/icons/8f60f1d9-cd4b-4213-90fe-3d8d32541075.png b/parsers/src/main/assets/icons/8f60f1d9-cd4b-4213-90fe-3d8d32541075.png
new file mode 100644
index 00000000..819ff343
Binary files /dev/null and b/parsers/src/main/assets/icons/8f60f1d9-cd4b-4213-90fe-3d8d32541075.png differ
diff --git a/parsers/src/main/assets/icons/9ff7f176-86fa-4568-87a5-80195e810ed4.png b/parsers/src/main/assets/icons/9ff7f176-86fa-4568-87a5-80195e810ed4.png
new file mode 100644
index 00000000..7891e75e
Binary files /dev/null and b/parsers/src/main/assets/icons/9ff7f176-86fa-4568-87a5-80195e810ed4.png differ
diff --git a/parsers/src/main/assets/icons/dbccab97-41e7-4c6e-86e8-1b24c213b22f.png b/parsers/src/main/assets/icons/dbccab97-41e7-4c6e-86e8-1b24c213b22f.png
new file mode 100644
index 00000000..bbb4bab9
Binary files /dev/null and b/parsers/src/main/assets/icons/dbccab97-41e7-4c6e-86e8-1b24c213b22f.png differ
diff --git a/parsers/src/main/assets/icons/e05b1d22-3d97-41fb-9fab-7dd243abe822.png b/parsers/src/main/assets/icons/e05b1d22-3d97-41fb-9fab-7dd243abe822.png
new file mode 100644
index 00000000..12eede6c
Binary files /dev/null and b/parsers/src/main/assets/icons/e05b1d22-3d97-41fb-9fab-7dd243abe822.png differ
diff --git a/parsers/src/main/assets/icons/f29a4de6-572b-400b-acb2-76252c497189.png b/parsers/src/main/assets/icons/f29a4de6-572b-400b-acb2-76252c497189.png
new file mode 100644
index 00000000..3467e9c4
Binary files /dev/null and b/parsers/src/main/assets/icons/f29a4de6-572b-400b-acb2-76252c497189.png differ
diff --git a/parsers/src/main/assets/icons/f9a680a5-7d15-4e84-9478-c8049bc862f9.png b/parsers/src/main/assets/icons/f9a680a5-7d15-4e84-9478-c8049bc862f9.png
new file mode 100644
index 00000000..6c7927fc
Binary files /dev/null and b/parsers/src/main/assets/icons/f9a680a5-7d15-4e84-9478-c8049bc862f9.png differ
diff --git a/parsers/src/main/assets/icons/ffca8acd-7a92-40de-a115-ef4c77ab4e2d.png b/parsers/src/main/assets/icons/ffca8acd-7a92-40de-a115-ef4c77ab4e2d.png
new file mode 100644
index 00000000..5ee692a4
Binary files /dev/null and b/parsers/src/main/assets/icons/ffca8acd-7a92-40de-a115-ef4c77ab4e2d.png differ
diff --git a/parsers/src/main/java/com/twofasapp/parsers/SupportedServices.kt b/parsers/src/main/java/com/twofasapp/parsers/SupportedServices.kt
index 838d702a..8c8796e3 100644
--- a/parsers/src/main/java/com/twofasapp/parsers/SupportedServices.kt
+++ b/parsers/src/main/java/com/twofasapp/parsers/SupportedServices.kt
@@ -11,6 +11,7 @@ object SupportedServices {
val list = listOf(
SupportedService(id = "002fd04d-4046-4629-952b-ee92f17e2e09", name = "IONOS", issuers = listOf("IONOS"), tags = listOf(), iconCollection = IconCollection(id = "a70bea5a-ea3a-46c0-baaf-e837a66aac19", name = "IONOS", icons = listOf(IconCollection.Icon(id = "a0f2843a-b865-433f-8267-45e57540ee08", type = Light),)), matchRules = listOf()),
SupportedService(id = "0336adda-650e-4082-a24b-4a2165c3a043", name = "USPTO", issuers = listOf("MyUSPTO"), tags = listOf(), iconCollection = IconCollection(id = "13838d86-6882-4851-81c1-272b128feb5d", name = "USPTO", icons = listOf(IconCollection.Icon(id = "8a10866e-9a2d-4014-886a-092e3329dd80", type = Dark),IconCollection.Icon(id = "da8f89ed-7f3f-4aa4-9c84-31d74b87160d", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "036733dc-870c-4a5e-b0df-f4dde5cc2a4a", name = "Trading 212", issuers = listOf("Trading 212"), tags = listOf(), iconCollection = IconCollection(id = "90ae4dbd-22cd-491d-9211-347df50aabe2", name = "Trading 212", icons = listOf(IconCollection.Icon(id = "006a974f-48c9-4c94-b913-45dac870b52f", type = Light),)), matchRules = listOf()),
SupportedService(id = "03bc1020-723f-445e-b9a8-530b8c37cc71", name = "Stackhero", issuers = listOf("Stackhero"), tags = listOf(), iconCollection = IconCollection(id = "236f8ce2-36d4-4c65-a7db-645b2be0261e", name = "Stackhero", icons = listOf(IconCollection.Icon(id = "823b2ffb-fc12-440b-80ea-a89fce2bb926", type = Dark),IconCollection.Icon(id = "9c775e93-f629-47c1-809d-da1e08b44e59", type = Light),)), matchRules = listOf()),
SupportedService(id = "043d0156-95ac-4d35-b9ea-7ca2cd8ea8af", name = "Aternos", issuers = listOf("Aternos"), tags = listOf(), iconCollection = IconCollection(id = "f5b2dde6-8f5d-4ca3-9b19-d10ef552d8b1", name = "Aternos", icons = listOf(IconCollection.Icon(id = "b57bc046-633d-436f-b28b-488d2839691a", type = Light),IconCollection.Icon(id = "bdaeaae4-4d21-4662-b347-845e9fe182b2", type = Dark),)), matchRules = listOf()),
SupportedService(id = "044d1095-ede6-4033-938c-4a409ab3a2c6", name = "Ring", issuers = listOf("Ring.com"), tags = listOf(), iconCollection = IconCollection(id = "97f2c094-5a55-4406-b06a-3229b0e08db5", name = "Ring", icons = listOf(IconCollection.Icon(id = "26d95dc7-24b7-4de5-b777-b190e085a596", type = Light),)), matchRules = listOf()),
@@ -76,6 +77,7 @@ object SupportedServices {
SupportedService(id = "2ee903ff-a9fd-44ce-970e-47fea122a860", name = "Nord Account", issuers = listOf("Nord+Account"), tags = listOf(), iconCollection = IconCollection(id = "f7a9cbe9-7a5d-42bc-9b2f-93a8254a2660", name = "Nord Account", icons = listOf(IconCollection.Icon(id = "ddaecc33-2298-471b-8a6d-f728407c3045", type = Light),IconCollection.Icon(id = "fbd08b46-4cc9-4939-aeda-76f1ce8e4b5a", type = Dark),)), matchRules = listOf()),
SupportedService(id = "2f17c720-647e-48ac-a306-b680954f545c", name = "Nuclino", issuers = listOf("Nuclino"), tags = listOf(), iconCollection = IconCollection(id = "65608700-0814-41ea-bcc7-7ba73e00dce8", name = "Nuclino", icons = listOf(IconCollection.Icon(id = "179e17e5-2f3c-4466-95e1-49b3fadd257d", type = Light),)), matchRules = listOf()),
SupportedService(id = "316212f6-5086-4bb2-8ca1-fdd411280a23", name = "Intuit", issuers = listOf("Intuit"), tags = listOf(), iconCollection = IconCollection(id = "a9dac0da-53ef-4c0d-b4d0-b7a23666be93", name = "Intuit", icons = listOf(IconCollection.Icon(id = "55799bee-7e26-460e-a643-29e6ece35361", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "31aa8c45-8c81-4039-a617-22fad52486af", name = "Jottacloud", issuers = listOf("Jottacloud"), tags = listOf(), iconCollection = IconCollection(id = "5847170f-ef51-49ef-a349-72874dc4afe7", name = "Jottacloud", icons = listOf(IconCollection.Icon(id = "2fab006b-31d8-4bce-9048-e93256412b08", type = Light),)), matchRules = listOf()),
SupportedService(id = "31e746da-d4d7-400b-ac87-006cf7f77e39", name = "Rec Room", issuers = listOf("RecRoom"), tags = listOf(), iconCollection = IconCollection(id = "c924f5d5-dc50-4121-b96f-b61dc8364ea6", name = "Rec Room", icons = listOf(IconCollection.Icon(id = "64192027-e51f-4f60-a10f-5abdeeb1b744", type = Dark),IconCollection.Icon(id = "9a019bbf-9b58-4ec7-8961-df0a5e8f6c56", type = Light),)), matchRules = listOf()),
SupportedService(id = "323a5859-1da6-4fa8-8ec9-e90e44575f6d", name = "USCIS", issuers = listOf("USCIS+myAccount"), tags = listOf(), iconCollection = IconCollection(id = "55a7126c-c74b-4030-be46-33baf1d41794", name = "USCIS", icons = listOf(IconCollection.Icon(id = "68cd26a5-04f1-4d74-aaac-129dacfbfddb", type = Light),)), matchRules = listOf()),
SupportedService(id = "3299e7f3-8231-45e4-8837-3277574f2368", name = "Glassdoor", issuers = listOf("mfa.glassdoor.com"), tags = listOf(), iconCollection = IconCollection(id = "e2383048-3ced-4f07-b637-22ac5781ed75", name = "Glassdoor", icons = listOf(IconCollection.Icon(id = "deb814e0-f5de-4b32-b588-f86d33619de4", type = Light),)), matchRules = listOf()),
@@ -95,7 +97,7 @@ object SupportedServices {
SupportedService(id = "3d2e931b-a5c1-4bf6-bec8-64d823a85680", name = "Surfshark VPN", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "25759a33-666d-44ea-8185-616ea36e9db4", name = "Surfshark VPN", icons = listOf(IconCollection.Icon(id = "1fc4f981-a213-4a16-b82c-c8dbca6978df", type = Light),)), matchRules = listOf(MatchRule(text = "Surfshark", field = Label, matcher = Equals, ignoreCase = true),)),
SupportedService(id = "3d516ea8-a8b7-4687-82f7-a3b8e9df68d1", name = "Gitlab", issuers = listOf("gitlab.com"), tags = listOf(), iconCollection = IconCollection(id = "28fc05d0-a329-4a0a-a0ec-066fd278577e", name = "Gitlab", icons = listOf(IconCollection.Icon(id = "eaa60b33-7209-4220-90b6-eaec98aa3559", type = Light),)), matchRules = listOf()),
SupportedService(id = "3ec08d85-d803-4b6a-a2f4-f5d24c9bba67", name = "GitHub", issuers = listOf("GitHub"), tags = listOf(), iconCollection = IconCollection(id = "fff32440-f5be-4b9c-b471-f37d421f10c3", name = "GitHub", icons = listOf(IconCollection.Icon(id = "22e59211-f891-452c-907f-aa3a18f0df0d", type = Dark),IconCollection.Icon(id = "fe145f01-40c5-4d19-9315-056bee84d02b", type = Light),)), matchRules = listOf()),
- SupportedService(id = "3ee94c0d-4c2c-4b59-a35e-9251bed8d7ce", name = "VK", issuers = listOf("VK"), tags = listOf(), iconCollection = IconCollection(id = "1e13dd25-50bd-4766-8b7f-937ae487b803", name = "VK", icons = listOf(IconCollection.Icon(id = "57faf98f-2231-4c44-a2fb-4f3400a1d9f6", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "3ee94c0d-4c2c-4b59-a35e-9251bed8d7ce", name = "VK", issuers = listOf("VK"), tags = listOf(), iconCollection = IconCollection(id = "1e13dd25-50bd-4766-8b7f-937ae487b803", name = "VK", icons = listOf(IconCollection.Icon(id = "3d5b6e1f-5caa-43bc-a486-6307ed7c0bce", type = Light),)), matchRules = listOf()),
SupportedService(id = "3eee1a70-692e-4105-8db8-3628a7b6a590", name = "Todoist", issuers = listOf("Todoist"), tags = listOf(), iconCollection = IconCollection(id = "d45ead47-367b-44c0-b258-69d73ff7443c", name = "Todoist", icons = listOf(IconCollection.Icon(id = "7cbc84ab-a00b-46a5-97f5-a73e614c45be", type = Light),)), matchRules = listOf()),
SupportedService(id = "3fd6917b-0eb2-4306-b4b1-000256f61977", name = "Onelogin", issuers = listOf("Onelogin"), tags = listOf(), iconCollection = IconCollection(id = "03233892-479f-4f72-beaa-653b53c3ec03", name = "Onelogin", icons = listOf(IconCollection.Icon(id = "79932352-a259-4ded-87f6-559406e824a3", type = Light),IconCollection.Icon(id = "fe4bf606-fdd5-4990-bcda-e66f2ab29f71", type = Dark),)), matchRules = listOf()),
SupportedService(id = "413a4cc5-ba05-4004-bc54-06df1a671926", name = "Matomo", issuers = listOf(), tags = listOf("analytics"), iconCollection = IconCollection(id = "c5d27bfb-74ac-4459-9c73-2e58a106ade3", name = "Matomo", icons = listOf(IconCollection.Icon(id = "7a1092db-7ffc-481c-89f3-09a911058acb", type = Light),)), matchRules = listOf(MatchRule(text = "Matomo Analytics", field = Issuer, matcher = StartsWith, ignoreCase = true),)),
@@ -103,6 +105,7 @@ object SupportedServices {
SupportedService(id = "450cab07-490e-4645-a336-126a798314ae", name = "Kraken", issuers = listOf("kraken.com"), tags = listOf(), iconCollection = IconCollection(id = "96d6723e-b5d2-4b90-9ce3-bccb3f919642", name = "Kraken", icons = listOf(IconCollection.Icon(id = "10a4ddaf-b0f9-4a30-8e60-3b9dae01de11", type = Dark),IconCollection.Icon(id = "7218bb8e-f2a8-49dc-a1fa-cccf92294f78", type = Light),)), matchRules = listOf()),
SupportedService(id = "454f77f3-c3b6-421b-8bb2-f2f0d627139f", name = "Cash App", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "f2bc2c98-a5bf-4be8-948c-28693d1600ea", name = "Cash App", icons = listOf(IconCollection.Icon(id = "8fbffd24-7fb2-4a2f-b15a-a026361a16ea", type = Light),)), matchRules = listOf(MatchRule(text = "Cash App", field = Label, matcher = Contains, ignoreCase = true),MatchRule(text = "CashApp", field = Label, matcher = Contains, ignoreCase = true),)),
SupportedService(id = "45741eb0-3388-4d54-8816-20a4bba036eb", name = "Zoom", issuers = listOf("Zoom"), tags = listOf(), iconCollection = IconCollection(id = "8e3326a2-13c9-49bb-b28d-c4465b0ce62d", name = "Zoom", icons = listOf(IconCollection.Icon(id = "e9f019ab-034f-4e2c-904b-f649961fc640", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "46d677ea-9678-4d03-a737-d53750c97f91", name = "Ubuntu", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "", name = "", icons = listOf()), matchRules = listOf(MatchRule(text = "UbuntuSSO", field = Label, matcher = Contains, ignoreCase = true),)),
SupportedService(id = "473b0856-b105-4f77-b7ef-f5bf4529837c", name = "NiceHash Withdraw", issuers = listOf("NiceHash - withdraw"), tags = listOf(), iconCollection = IconCollection(id = "c8019718-56b2-406f-bf21-2addda6b21fd", name = "NiceHash", icons = listOf(IconCollection.Icon(id = "cb0edba6-9027-49cc-b99d-1b31041e5073", type = Light),)), matchRules = listOf()),
SupportedService(id = "481437e0-6b0c-4289-98ea-ed30ac4d5a0f", name = "Mathworks", issuers = listOf("Mathworks"), tags = listOf(), iconCollection = IconCollection(id = "69123308-c433-4acb-a876-d5045d25cc83", name = "Mathworks", icons = listOf(IconCollection.Icon(id = "adc64626-384a-44b6-8c47-ac3a36548a7b", type = Light),)), matchRules = listOf()),
SupportedService(id = "48223642-089d-4e35-97da-4fbc4ba81c35", name = "PyPI", issuers = listOf("PyPI"), tags = listOf(), iconCollection = IconCollection(id = "eccafcdf-9e15-47d8-84c9-7da00d236135", name = "PyPI", icons = listOf(IconCollection.Icon(id = "e5c1ce9d-61db-4cdc-9f52-9b297a22d010", type = Light),)), matchRules = listOf()),
@@ -135,8 +138,10 @@ object SupportedServices {
SupportedService(id = "5c9efdde-cb62-4304-9f04-d120084a53dd", name = "Discord", issuers = listOf("Discord"), tags = listOf(), iconCollection = IconCollection(id = "f260ffa4-f41f-408a-aa2a-03d943efe371", name = "Discord", icons = listOf(IconCollection.Icon(id = "df6e1b0c-1a81-4a7f-863e-654b22f6d9b2", type = Light),)), matchRules = listOf()),
SupportedService(id = "5cf8be69-25f5-4d43-aa51-2d54930d247a", name = "PayPal", issuers = listOf("PayPal"), tags = listOf(), iconCollection = IconCollection(id = "ff415e4a-32f1-47be-9274-44ab42f79720", name = "PayPal", icons = listOf(IconCollection.Icon(id = "5231ab25-fad9-4896-b984-5c40f2a6ec4b", type = Light),)), matchRules = listOf()),
SupportedService(id = "5d2778b3-e293-49e7-a39e-66d86c21dd96", name = "Dropbox", issuers = listOf("Dropbox"), tags = listOf(), iconCollection = IconCollection(id = "3c82e6ee-906c-4d6a-9992-01ab376614db", name = "Dropbox", icons = listOf(IconCollection.Icon(id = "9f71451b-676a-4226-962b-9f1040986ebc", type = Dark),IconCollection.Icon(id = "b44f8e4c-d17a-447d-956b-ada61c5823ef", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "5d4710e6-1eb7-4d29-b1aa-1c416a20773d", name = "ClouDNS", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "", name = "", icons = listOf()), matchRules = listOf(MatchRule(text = "ClouDNS", field = Issuer, matcher = StartsWith, ignoreCase = true),)),
SupportedService(id = "5d4c1ad0-35e7-4205-811b-52d596651ca2", name = "AngelList", issuers = listOf("AngelList"), tags = listOf(), iconCollection = IconCollection(id = "6900249f-744b-43df-86bd-8ad8fb51965a", name = "AngelList", icons = listOf(IconCollection.Icon(id = "297942dd-8733-4200-8044-1cbfac87651a", type = Dark),IconCollection.Icon(id = "59ef6432-8054-4db9-8968-0d176c01467c", type = Light),)), matchRules = listOf()),
SupportedService(id = "5da3a886-876e-485e-9a37-5c5d1c258ecd", name = "ENEBA", issuers = listOf("ENEBA"), tags = listOf(), iconCollection = IconCollection(id = "d0239931-f1fb-4d08-ad44-06104a85c83c", name = "ENEBA", icons = listOf(IconCollection.Icon(id = "b655c71a-6b40-464d-8f58-43705c6c071d", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "5dfa53b5-48c3-48eb-a134-db9ac58e8d34", name = "Privacy", issuers = listOf("Privacy.com"), tags = listOf(), iconCollection = IconCollection(id = "4fe59ffa-9851-47df-88a2-15104ea2985a", name = "Privacy", icons = listOf(IconCollection.Icon(id = "040cc5d8-5bb2-48e3-b2d9-1c9e030f2a32", type = Light),)), matchRules = listOf()),
SupportedService(id = "5e62a68a-88f4-4f3f-ad60-df8ea34bdc57", name = "MongoDB", issuers = listOf("auth.mongodb.com"), tags = listOf(), iconCollection = IconCollection(id = "e082188e-0759-4827-96ff-acfb35702a52", name = "MongoDB", icons = listOf(IconCollection.Icon(id = "44799abb-abd0-4984-a008-e88ab9070367", type = Light),)), matchRules = listOf()),
SupportedService(id = "5f6cf4bf-e408-41bb-a520-4c27417ba474", name = "Infomaniak", issuers = listOf("Infomaniak"), tags = listOf(), iconCollection = IconCollection(id = "5faf5121-0161-4b23-a875-b347574b891b", name = "Infomaniak", icons = listOf(IconCollection.Icon(id = "47d76376-6a44-41b3-a800-c69cdd8fe393", type = Light),)), matchRules = listOf()),
SupportedService(id = "5fac27e0-e0e4-4e5c-ba7c-54ca0c5f1482", name = "Coinbase", issuers = listOf("Coinbase"), tags = listOf(), iconCollection = IconCollection(id = "5bd3cbd6-32b6-41f0-baa3-3fccaf624269", name = "Coinbase", icons = listOf(IconCollection.Icon(id = "ea3196b2-7a7d-45ed-a4e8-144e837a013e", type = Light),)), matchRules = listOf()),
@@ -147,6 +152,7 @@ object SupportedServices {
SupportedService(id = "63f0bdaf-94fe-4b4c-983f-90442877f0ec", name = "Uber", issuers = listOf("Uber"), tags = listOf(), iconCollection = IconCollection(id = "b73cc164-8763-4826-8603-0c79f08a1eb5", name = "Uber", icons = listOf(IconCollection.Icon(id = "3a0b50f1-8fc6-46dc-afb7-de1cb61bb8d2", type = Light),)), matchRules = listOf()),
SupportedService(id = "6481dfa9-0bb0-4a14-a431-0e1a3ac8ceab", name = "CosmicPvP", issuers = listOf("CosmicPvP"), tags = listOf(), iconCollection = IconCollection(id = "a3e24799-f3f1-4daa-b5d2-244bfe53a19f", name = "CosmicPvP", icons = listOf(IconCollection.Icon(id = "43529436-e2b5-4ccc-9c3e-9464638aef8e", type = Light),)), matchRules = listOf(MatchRule(text = "cosmicpvp", field = Label, matcher = Contains, ignoreCase = true),)),
SupportedService(id = "66917fb1-38a9-4ae7-95e6-f0ec44746d05", name = "Storj.io", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "c6360125-33fe-492a-a2cd-57dd72c18cd3", name = "Storj.io", icons = listOf(IconCollection.Icon(id = "5c986ac9-8e6c-47ca-86f7-93799ed8dd05", type = Light),)), matchRules = listOf(MatchRule(text = "STORJ", field = Issuer, matcher = StartsWith, ignoreCase = true),)),
+ SupportedService(id = "678bf6be-c919-49c4-ad4e-3ff5d2141803", name = "Dr. Windows", issuers = listOf("Dr. Windows"), tags = listOf(), iconCollection = IconCollection(id = "b92626fe-68ff-449e-ba64-3e92d55ac2d2", name = "Dr. Windows", icons = listOf(IconCollection.Icon(id = "11361929-9c24-4237-a01a-810000abaf29", type = Light),)), matchRules = listOf()),
SupportedService(id = "689e8b6b-63d2-41e3-a7bb-6f935260d0cf", name = "WeVPN", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "bf159c1f-31b1-4db3-a8bd-802345ec8a4d", name = "WeVPN", icons = listOf(IconCollection.Icon(id = "88501443-4a33-4f02-883e-e5eb8ea5cdda", type = Light),IconCollection.Icon(id = "c5d4d7bd-1a3d-41ff-b223-94390fa472e5", type = Dark),)), matchRules = listOf(MatchRule(text = "WeVPN", field = Label, matcher = StartsWith, ignoreCase = true),)),
SupportedService(id = "68c47a3b-5a05-4f56-8096-078a5b9b8e1f", name = "itch.io", issuers = listOf("itch.io"), tags = listOf(), iconCollection = IconCollection(id = "3ce6bb6a-a1d6-4ac3-8125-a556deee362a", name = "itch.io", icons = listOf(IconCollection.Icon(id = "003f4679-36b8-4fe3-bb99-b8c08cbf31c5", type = Light),IconCollection.Icon(id = "4abe62ee-7869-4324-9679-363e24216960", type = Dark),)), matchRules = listOf()),
SupportedService(id = "690233b0-1e1d-4e7a-a89b-375862cc4666", name = "BitSkins", issuers = listOf("BitSkins"), tags = listOf(), iconCollection = IconCollection(id = "cd08463b-4344-4269-8561-60029f98ba5b", name = "BitSkins", icons = listOf(IconCollection.Icon(id = "09b37953-f46b-41a2-9888-903ab6ab16ff", type = Light),)), matchRules = listOf()),
@@ -171,9 +177,11 @@ object SupportedServices {
SupportedService(id = "7c839f74-7df8-4ea8-9e45-e9ad8ac37197", name = "Jagex", issuers = listOf("Jagex"), tags = listOf(), iconCollection = IconCollection(id = "bba6e836-305e-4ab5-b02e-40e8587a10d5", name = "Jagex", icons = listOf(IconCollection.Icon(id = "61a569da-5b9c-439b-a439-ff06a4c2f24a", type = Light),)), matchRules = listOf()),
SupportedService(id = "7d012425-7019-4320-90a5-38963e4a022e", name = "Brave", issuers = listOf("Brave+Rewards"), tags = listOf(), iconCollection = IconCollection(id = "e4e7da2f-3d8b-4686-8c2c-fd94a23864ad", name = "Brave", icons = listOf(IconCollection.Icon(id = "c0d07326-5451-4ed1-8897-6b077e1bbfc1", type = Light),)), matchRules = listOf()),
SupportedService(id = "7dfa2136-3dcb-4b38-9038-7e7a39612fc3", name = "Sync", issuers = listOf("Sync"), tags = listOf(), iconCollection = IconCollection(id = "3aa1b5aa-0f1d-41a1-8ce2-a3e76741ebb8", name = "Sync", icons = listOf(IconCollection.Icon(id = "348d6ba7-61e5-4247-a0d3-1a471e65fea2", type = Light),IconCollection.Icon(id = "b6e826a6-807c-4259-b788-44fbd238e347", type = Dark),)), matchRules = listOf()),
+ SupportedService(id = "7e3248ab-9cc7-4213-8e46-db814bcd98b7", name = "Squarespace", issuers = listOf("Squarespace"), tags = listOf(), iconCollection = IconCollection(id = "614e0e97-27e3-4db2-9f6b-34d6027fa9d2", name = "Squarespace", icons = listOf(IconCollection.Icon(id = "181d343a-a7fc-49f1-a34c-9c9c91052b04", type = Light),IconCollection.Icon(id = "f29a4de6-572b-400b-acb2-76252c497189", type = Dark),)), matchRules = listOf()),
SupportedService(id = "7ec6284a-152f-4ac6-a702-95a21bfb7e02", name = "IFTTT", issuers = listOf("IFTTT"), tags = listOf(), iconCollection = IconCollection(id = "c5879187-e23d-4700-93f3-a6f868acabac", name = "IFTTT", icons = listOf(IconCollection.Icon(id = "9bf53643-6851-4ff7-8813-42e13ffd310a", type = Dark),IconCollection.Icon(id = "a474e176-b524-4f47-9136-8d5bbe082360", type = Light),)), matchRules = listOf()),
SupportedService(id = "7f1b59e5-fd1d-4e2f-a6c3-c38c44c53c6e", name = "Digital Ocean", issuers = listOf("DigitalOcean"), tags = listOf(), iconCollection = IconCollection(id = "bedb3c09-c11e-4a34-9c30-1855a5b546b8", name = "Digital Ocean", icons = listOf(IconCollection.Icon(id = "d118a635-ecff-4245-8efa-a16ed0e2968c", type = Light),)), matchRules = listOf()),
SupportedService(id = "7fc06c13-d09b-40da-a740-099cc0743da8", name = "Help Scout", issuers = listOf("Help Scout"), tags = listOf(), iconCollection = IconCollection(id = "dbedb8f2-02a7-48c5-a41f-a009b989430c", name = "Help Scout", icons = listOf(IconCollection.Icon(id = "0f8ca18e-d6d4-4547-8e5d-2c024fd1bf90", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "802b7e13-9f6c-4546-b188-38b7ade15b67", name = "Unstoppable Domains", issuers = listOf("unstoppabledomains.com"), tags = listOf(), iconCollection = IconCollection(id = "07a242e2-8f53-4a02-86d2-bd3d1589f0bc", name = "Unstoppable Domains", icons = listOf(IconCollection.Icon(id = "8cc53f9a-5965-4cd3-a466-816474270fb0", type = Light),)), matchRules = listOf()),
SupportedService(id = "80f023af-b7e2-4395-a700-769bf968dcf6", name = "JetBrains", issuers = listOf("JetBrains+Account"), tags = listOf(), iconCollection = IconCollection(id = "2143b701-156b-4d92-919f-00fa12423913", name = "JetBrains", icons = listOf(IconCollection.Icon(id = "18848da5-dfa6-4b4b-8a3b-d5dc3f7582b7", type = Light),)), matchRules = listOf()),
SupportedService(id = "80ffdc39-f0ba-40a1-826a-0afb5084f8a0", name = "Ubiquiti", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "d4933ce4-1942-416a-aea0-97e802b741cc", name = "Ubiquiti", icons = listOf(IconCollection.Icon(id = "0b2c56d8-6e97-4725-bd03-0de05d9fa00f", type = Light),)), matchRules = listOf(MatchRule(text = "Ubiquiti", field = Label, matcher = Contains, ignoreCase = true),)),
SupportedService(id = "81243ec1-475c-4d34-960c-18ab2ea3f112", name = "CoinTracker", issuers = listOf("CoinTracker"), tags = listOf(), iconCollection = IconCollection(id = "16a18da2-f83a-4af4-989d-bef141971c43", name = "CoinTracker", icons = listOf(IconCollection.Icon(id = "35819712-7fae-4426-8fe9-d718da5a11e2", type = Light),)), matchRules = listOf()),
@@ -194,7 +202,7 @@ object SupportedServices {
SupportedService(id = "8cd97a5c-e890-47ee-8597-8095bba4d400", name = "Bittrex", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "672c798a-3c40-4eb3-b489-de0bc52d20a9", name = "Bittrex", icons = listOf(IconCollection.Icon(id = "306834f5-9e68-4fa3-b9ff-ac8e32a22586", type = Light),)), matchRules = listOf(MatchRule(text = "Bittrex", field = Label, matcher = Contains, ignoreCase = true),)),
SupportedService(id = "8cda437e-8759-4571-b0c9-9bee964fbd64", name = "Standard Notes", issuers = listOf("Standard Notes"), tags = listOf(), iconCollection = IconCollection(id = "37799941-a47d-4b12-86f1-fdddda28a05f", name = "Standard Notes", icons = listOf(IconCollection.Icon(id = "8e384637-0826-4db4-8f52-a8daa6d6b154", type = Light),IconCollection.Icon(id = "deaebdcd-5cbe-4a35-895f-9330fc287e3f", type = Dark),)), matchRules = listOf()),
SupportedService(id = "8cf11e76-9989-41a4-b623-0c6bad678645", name = "HEY", issuers = listOf("HEY"), tags = listOf(), iconCollection = IconCollection(id = "fbc8da17-9128-430f-b86b-8aa5e735a299", name = "HEY", icons = listOf(IconCollection.Icon(id = "0f0277a1-c6e5-4141-9182-75b4425de101", type = Light),)), matchRules = listOf()),
- SupportedService(id = "8d21146d-684e-47fe-8658-3b11cfd11138", name = "Bitdefender", issuers = listOf("Bitdefender"), tags = listOf(), iconCollection = IconCollection(id = "394aa3fc-2818-45f2-8f0f-612856b2ab82", name = "Bitdefender", icons = listOf(IconCollection.Icon(id = "3bdfed03-e95c-43c7-91ce-9c6154ff15ec", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "8d21146d-684e-47fe-8658-3b11cfd11138", name = "Bitdefender", issuers = listOf("Bitdefender"), tags = listOf(), iconCollection = IconCollection(id = "394aa3fc-2818-45f2-8f0f-612856b2ab82", name = "Bitdefender", icons = listOf(IconCollection.Icon(id = "9ff7f176-86fa-4568-87a5-80195e810ed4", type = Light),)), matchRules = listOf()),
SupportedService(id = "8d2b7cfd-2d6e-4a82-af14-4d60924abf84", name = "Skrill", issuers = listOf("Skrill"), tags = listOf(), iconCollection = IconCollection(id = "6f8b55b6-d7bb-4691-bda2-2b1de39fb448", name = "Skrill", icons = listOf(IconCollection.Icon(id = "d7b9c9f2-a1e6-4861-943d-59761adb6a88", type = Light),)), matchRules = listOf()),
SupportedService(id = "8d8cd023-32c3-41d7-afa2-1434b7b81a68", name = "Discourse", issuers = listOf("Discourse"), tags = listOf(), iconCollection = IconCollection(id = "2f5845bf-7788-4b08-9bc8-a889d38fa6f6", name = "Discourse", icons = listOf(IconCollection.Icon(id = "14eda6ce-931a-4eba-8588-1059943f5c03", type = Light),)), matchRules = listOf()),
SupportedService(id = "8e341159-38ce-434d-928a-d76637c9b827", name = "Terraform", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "439ca1bc-c64a-4bc6-85c2-296815ba76f3", name = "Terraform", icons = listOf(IconCollection.Icon(id = "781de4e7-68e9-462a-b5ae-780be6672d55", type = Light),)), matchRules = listOf(MatchRule(text = "Terraform", field = Issuer, matcher = StartsWith, ignoreCase = true),)),
@@ -252,19 +260,22 @@ object SupportedServices {
SupportedService(id = "b807a96b-b1bf-4550-8729-d45068aa1140", name = "Webflow", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "38a47686-7af2-4b3b-827b-315b6b92eb74", name = "Webflow", icons = listOf(IconCollection.Icon(id = "a535a9a2-e922-4553-bad4-caacd43dd6e2", type = Light),)), matchRules = listOf(MatchRule(text = "Webflow", field = Label, matcher = StartsWith, ignoreCase = true),)),
SupportedService(id = "b872cbd5-dcaa-4a36-83dc-29b273009726", name = "coinsquare", issuers = listOf("coinsquare.io"), tags = listOf(), iconCollection = IconCollection(id = "523a8784-c94d-4ac2-bd6f-153b1df3a9e8", name = "coinsquare.io", icons = listOf(IconCollection.Icon(id = "6d07ae60-58e9-4873-8a0e-07c82ea1aa69", type = Light),IconCollection.Icon(id = "c150b169-e4fb-406d-9524-292e3e96f7af", type = Dark),)), matchRules = listOf()),
SupportedService(id = "b8869267-e0a5-407c-9b77-8c664896b252", name = "Windscribe", issuers = listOf("Windscribe"), tags = listOf(), iconCollection = IconCollection(id = "a538ade5-25f9-4d84-b908-39495b168b47", name = "Windscribe", icons = listOf(IconCollection.Icon(id = "4ba857ce-466b-457c-b8df-fa517a79aa69", type = Light),)), matchRules = listOf()),
- SupportedService(id = "b8ccc448-1c97-4d5c-a781-25c48996b00f", name = "Sony", issuers = listOf("Sony"), tags = listOf(), iconCollection = IconCollection(id = "2dc7dd80-1b1e-420b-92ee-838298de29a9", name = "Sony", icons = listOf(IconCollection.Icon(id = "e41df95a-f023-44e9-8ce4-f9e2b17f6006", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "b8ccc448-1c97-4d5c-a781-25c48996b00f", name = "Sony", issuers = listOf("Sony"), tags = listOf(), iconCollection = IconCollection(id = "2dc7dd80-1b1e-420b-92ee-838298de29a9", name = "Sony", icons = listOf(IconCollection.Icon(id = "ffca8acd-7a92-40de-a115-ef4c77ab4e2d", type = Light),)), matchRules = listOf()),
SupportedService(id = "bb0cf5e7-d66f-442a-9f15-1623cfcfc57e", name = "cPanel", issuers = listOf(), tags = listOf("hosting","panel"), iconCollection = IconCollection(id = "ae7eba01-f217-4138-9389-0dbac94a8f7e", name = "cPanel", icons = listOf(IconCollection.Icon(id = "89bfbb1f-97c5-4672-9507-a30512a0dffd", type = Light),)), matchRules = listOf()),
SupportedService(id = "bbf98616-dab0-48d4-859a-0877ad00766a", name = "TeamViewer", issuers = listOf("TeamViewer"), tags = listOf(), iconCollection = IconCollection(id = "e478edd8-ec9b-4e06-b0f8-1089ce988125", name = "TeamViewer", icons = listOf(IconCollection.Icon(id = "726d138f-a418-4950-b2bd-59bec2b66a36", type = Light),)), matchRules = listOf()),
SupportedService(id = "bc1329ad-925b-4f51-8ff2-0079975d9bc0", name = "Kaspersky", issuers = listOf("Kaspersky"), tags = listOf(), iconCollection = IconCollection(id = "7f5d563c-229a-4e2c-bbbd-50c7d27f5bdb", name = "Kaspersky", icons = listOf(IconCollection.Icon(id = "4fbf4cbd-7580-4b1a-9e59-3ec522329b48", type = Light),IconCollection.Icon(id = "f6e42320-6170-4bc2-9fd1-23639c23583a", type = Dark),)), matchRules = listOf()),
+ SupportedService(id = "bd82b421-51cf-436f-86e9-b9c98487f439", name = "Filen", issuers = listOf("Filen"), tags = listOf(), iconCollection = IconCollection(id = "5c7adbb7-3438-424b-a7d9-f82b7360516c", name = "Filen", icons = listOf(IconCollection.Icon(id = "8f60f1d9-cd4b-4213-90fe-3d8d32541075", type = Light),IconCollection.Icon(id = "dbccab97-41e7-4c6e-86e8-1b24c213b22f", type = Dark),)), matchRules = listOf()),
SupportedService(id = "be114956-58bb-4909-8668-44e728554556", name = "NextDNS", issuers = listOf("NextDNS"), tags = listOf(), iconCollection = IconCollection(id = "88e25804-b257-416a-8cdc-68f71cae5f32", name = "NextDNS", icons = listOf(IconCollection.Icon(id = "c8256b5f-bd3f-415b-8213-1c5401cb5f29", type = Light),)), matchRules = listOf()),
SupportedService(id = "be87d55c-5786-41a2-8851-84ba49c7d4d0", name = "DB", issuers = listOf("Deutsche Bahn"), tags = listOf("Deutsche","bahn"), iconCollection = IconCollection(id = "2da66dfc-d49d-443c-9322-57ae6c623007", name = "DB", icons = listOf(IconCollection.Icon(id = "a6971039-20f4-4234-a902-b80e9c580f50", type = Light),)), matchRules = listOf()),
SupportedService(id = "be900c77-fe67-4f9b-805b-10c899125fa5", name = "Microsoft", issuers = listOf("Microsoft"), tags = listOf(), iconCollection = IconCollection(id = "5336cd6b-2971-4a3f-bdd9-7d32ea2abe27", name = "Microsoft", icons = listOf(IconCollection.Icon(id = "6f13e903-ea3f-4f08-bce7-b1d142d69149", type = Light),)), matchRules = listOf()),
SupportedService(id = "be94105a-d323-4565-983e-de4760b9fe98", name = "Glasswire", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "a3b6db73-ed50-4061-bc72-735a0b06f147", name = "Glasswire", icons = listOf(IconCollection.Icon(id = "23087d98-4fa7-4ce5-9a48-b83d63bac1b6", type = Light),)), matchRules = listOf(MatchRule(text = "Glasswire", field = Issuer, matcher = Contains, ignoreCase = true),)),
- SupportedService(id = "bea00452-571b-4b75-83cb-be9f79f8dcc6", name = "ClickUp", issuers = listOf("ClickUp"), tags = listOf(), iconCollection = IconCollection(id = "3f75fd3e-be90-44fa-9620-a2ba8c158557", name = "ClickUp", icons = listOf(IconCollection.Icon(id = "9a65f527-a84b-4442-ab59-e3bb8590477f", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "bea00452-571b-4b75-83cb-be9f79f8dcc6", name = "ClickUp", issuers = listOf("ClickUp"), tags = listOf(), iconCollection = IconCollection(id = "3f75fd3e-be90-44fa-9620-a2ba8c158557", name = "ClickUp", icons = listOf(IconCollection.Icon(id = "4b315879-fa9f-40d7-8b47-e4bd1d5e367b", type = Light),)), matchRules = listOf()),
SupportedService(id = "bf211001-f2a2-4385-b857-9740b1edc85a", name = "WitherHosting", issuers = listOf("WitherHosting"), tags = listOf(), iconCollection = IconCollection(id = "2d0e42e8-e91d-4983-8364-d005429d57ad", name = "WitherHosting", icons = listOf(IconCollection.Icon(id = "0dc68b55-50ce-49c5-bb76-1e2a857854c8", type = Light),IconCollection.Icon(id = "78552165-4cf8-42bd-be9c-8c7a4b83ba62", type = Dark),)), matchRules = listOf()),
SupportedService(id = "c103519f-e4fe-4c5a-9c75-e55b42d94a17", name = "AnonAddy", issuers = listOf("AnonAddy"), tags = listOf(), iconCollection = IconCollection(id = "928647e4-14de-434a-8210-817202d36d73", name = "AnonAddy", icons = listOf(IconCollection.Icon(id = "691fc930-60f7-43f3-8314-39a223a54799", type = Dark),IconCollection.Icon(id = "f2bca57c-c9da-4740-9f3c-09a8d63223af", type = Light),)), matchRules = listOf()),
SupportedService(id = "c1ca5186-2e6d-4d70-b8c9-a5410b791664", name = "Stake", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "5430258c-8064-46bb-9adf-9a36e276407b", name = "Stake", icons = listOf(IconCollection.Icon(id = "7c665366-cfc1-4554-a50c-dcdf72743a1e", type = Light),IconCollection.Icon(id = "fc17da47-5439-4452-8df2-875ff991778d", type = Dark),)), matchRules = listOf(MatchRule(text = "Stake.com", field = Label, matcher = Contains, ignoreCase = true),)),
+ SupportedService(id = "c27a237e-d224-402e-b40c-fc307942eaa6", name = "Huawei", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "", name = "", icons = listOf()), matchRules = listOf(MatchRule(text = "huawei", field = Label, matcher = StartsWith, ignoreCase = true),)),
SupportedService(id = "c2a740ba-8823-4add-9f60-3f87797251f0", name = "Wealthsimple", issuers = listOf("Wealthsimple"), tags = listOf(), iconCollection = IconCollection(id = "699d4dd1-5144-49e6-9c77-bf065e7bcd14", name = "Wealthsimple", icons = listOf(IconCollection.Icon(id = "10909efb-986e-4c81-b64e-b7c242ecd3a7", type = Light),IconCollection.Icon(id = "78a660a2-d2d1-42db-8cec-1d0288621bd0", type = Dark),)), matchRules = listOf()),
+ SupportedService(id = "c3cf42df-5f28-4812-a954-7364473d5723", name = "VMware", issuers = listOf("VMware+Cloud+Services","VMware Cloud Services"), tags = listOf(), iconCollection = IconCollection(id = "91779097-9ee2-4e9d-a208-20d3d01d1643", name = "VMware", icons = listOf(IconCollection.Icon(id = "522719dd-9fd6-4829-b5d0-828bee041d96", type = Light),)), matchRules = listOf()),
SupportedService(id = "c4c182d1-88d7-4c0a-bc67-1aeb28fa21db", name = "coindeal.io", issuers = listOf("coindeal.io"), tags = listOf(), iconCollection = IconCollection(id = "163316f8-fb4a-45c4-a349-1187e51bfe72", name = "coindeal.io", icons = listOf(IconCollection.Icon(id = "0afb5eb7-9f44-4a00-89e2-502e213f6606", type = Light),IconCollection.Icon(id = "70eeb019-0bda-4199-b51b-00aa82536780", type = Dark),)), matchRules = listOf()),
SupportedService(id = "c679176d-d306-4a06-876a-3334b47d3975", name = "AnyDesk", issuers = listOf("anydesk.com"), tags = listOf(), iconCollection = IconCollection(id = "5fb9027d-e589-43ab-88a7-13f39799ef94", name = "AnyDesk", icons = listOf(IconCollection.Icon(id = "dcfefd8c-18e3-4eca-a8a3-c6415f734160", type = Light),)), matchRules = listOf()),
SupportedService(id = "c6a0e139-d7b3-4351-8741-cfdd296b5802", name = "Bitcoin Meester", issuers = listOf("Bitcoinmeester"), tags = listOf(), iconCollection = IconCollection(id = "4e2c56b1-02ce-4756-8569-ef872d405874", name = "Bitcoin Meester", icons = listOf(IconCollection.Icon(id = "dd4e5b0f-d693-47ea-9f85-ea5b81ab33c9", type = Light),)), matchRules = listOf()),
@@ -283,7 +294,7 @@ object SupportedServices {
SupportedService(id = "cdadf221-4f82-448a-a738-c12ccff5898a", name = "Twitch", issuers = listOf("Twitch"), tags = listOf(), iconCollection = IconCollection(id = "45b960f2-8b2a-4bfe-8bde-4893b1003d26", name = "Twitch", icons = listOf(IconCollection.Icon(id = "e77928c0-8744-43d5-b448-93423fd446fb", type = Light),)), matchRules = listOf()),
SupportedService(id = "cdec1fec-5e6f-4470-9a15-60631f6c4383", name = "Snapchat", issuers = listOf("Snapchat"), tags = listOf(), iconCollection = IconCollection(id = "0ec93e50-3b19-49b2-baca-ba561a1ba2b1", name = "Snapchat", icons = listOf(IconCollection.Icon(id = "f19a50bf-98c9-49bf-85b3-d2a7c5b06f6a", type = Light),)), matchRules = listOf()),
SupportedService(id = "d0304fa7-f304-40e2-93c4-b4d4d3e95486", name = "Cisco Meraki", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "30d5083a-e9fd-43c0-a011-698e431fb409", name = "Cisco Meraki", icons = listOf(IconCollection.Icon(id = "9fb9e09a-5513-496d-be48-73f4e334a9eb", type = Light),)), matchRules = listOf(MatchRule(text = "Meraki", field = Label, matcher = Contains, ignoreCase = true),)),
- SupportedService(id = "d0edd58d-e40a-444d-a440-e4907b0a22d6", name = "Bitwarden", issuers = listOf("Bitwarden"), tags = listOf(), iconCollection = IconCollection(id = "6ba06a11-e5d2-493a-950b-cb0d400bc6db", name = "Bitwarden", icons = listOf(IconCollection.Icon(id = "21ffea4a-91cf-4d07-9ab5-4b42e650f0ef", type = Dark),IconCollection.Icon(id = "61c7f6e0-d8b2-4633-976b-191a5c0736e5", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "d0edd58d-e40a-444d-a440-e4907b0a22d6", name = "Bitwarden", issuers = listOf("Bitwarden"), tags = listOf(), iconCollection = IconCollection(id = "6ba06a11-e5d2-493a-950b-cb0d400bc6db", name = "Bitwarden", icons = listOf(IconCollection.Icon(id = "2185da04-3d82-4fdc-9d20-3d670cf31073", type = Dark),IconCollection.Icon(id = "e05b1d22-3d97-41fb-9fab-7dd243abe822", type = Light),)), matchRules = listOf()),
SupportedService(id = "d1f4fd42-38e0-4d8d-9ff4-4f1f7d9f0a8e", name = "Rubrik", issuers = listOf("Rubrik"), tags = listOf(), iconCollection = IconCollection(id = "e4c14f12-668c-49fc-b0b5-dec9830e5ce1", name = "Rubrik", icons = listOf(IconCollection.Icon(id = "84d9624b-678a-4236-a10b-2c9d0be33df4", type = Light),)), matchRules = listOf()),
SupportedService(id = "d241edff-480f-4201-840a-5a1c1d1323c2", name = "STEAM", issuers = listOf("Steam"), tags = listOf(), iconCollection = IconCollection(id = "d5fd5765-bc30-407a-923f-e1dfd5cec49f", name = "STEAM", icons = listOf(IconCollection.Icon(id = "09f120c3-7f23-4e4e-8e41-61d3087ef087", type = Light),)), matchRules = listOf()),
SupportedService(id = "d25508f8-c64b-41d3-905a-e95d484b034a", name = "Zonda", issuers = listOf("BitBay","ZondaAuth"), tags = listOf(), iconCollection = IconCollection(id = "b8b16d9f-52ec-471f-bfc0-fd1e6f9d60f3", name = "Zonda", icons = listOf(IconCollection.Icon(id = "b31a3f2b-b074-4b49-8f7f-e16dd95ba7fb", type = Dark),IconCollection.Icon(id = "bfb6f657-2c6c-4a32-820e-69222f85ccae", type = Light),)), matchRules = listOf()),
@@ -302,10 +313,12 @@ object SupportedServices {
SupportedService(id = "dcbc5cc0-60d3-4235-9430-4a8c06286283", name = "Nextcloud", issuers = listOf("Nextcloud"), tags = listOf(), iconCollection = IconCollection(id = "caa08091-57d6-409d-a45e-f684cdbc79b0", name = "Nextcloud", icons = listOf(IconCollection.Icon(id = "1d3c6f8b-dd46-4529-812e-f2d3c4bf9567", type = Light),)), matchRules = listOf()),
SupportedService(id = "dd1fc65b-34a9-4c97-b3a1-f7da1385ce61", name = "Minergate", issuers = listOf("minergate.com"), tags = listOf(), iconCollection = IconCollection(id = "1054c554-f8bc-46c5-9c79-f7a8b74dd5fe", name = "Minergate", icons = listOf(IconCollection.Icon(id = "6b9ce89a-9add-4b34-83c4-13c5cc1e8dba", type = Light),)), matchRules = listOf()),
SupportedService(id = "dd201816-6a50-43ee-ac67-220f3d569bdb", name = "SPID", issuers = listOf("ARUBA"), tags = listOf(), iconCollection = IconCollection(id = "2a90f267-5e37-4003-a114-e05892e5f4df", name = "SPID", icons = listOf(IconCollection.Icon(id = "6446f8ea-5d6c-4f8d-b453-9058295c77e6", type = Light),IconCollection.Icon(id = "b179582b-fb0f-4bd6-938c-dac6d6beaae2", type = Dark),)), matchRules = listOf()),
+ SupportedService(id = "dd6a9a01-52d7-4b5e-9f74-0ca68538a070", name = "Crowdin", issuers = listOf("crowdin.com"), tags = listOf(), iconCollection = IconCollection(id = "6059f9e8-d90b-4cca-acea-ae8797837adb", name = "Crowdin", icons = listOf(IconCollection.Icon(id = "3625c1e6-c020-49c8-912e-ffd5f19f6f1f", type = Light),IconCollection.Icon(id = "651adfb1-9ed0-4a58-bcab-7d1a24f6f19a", type = Dark),)), matchRules = listOf()),
SupportedService(id = "deead8dd-c9e3-463a-8c73-1e75c5ec13cf", name = "Rockstar Games", issuers = listOf("Rockstar+Games","Rockstar Games"), tags = listOf(), iconCollection = IconCollection(id = "fcb5345a-dacd-4898-884d-162c8263fd62", name = "Rockstar Games", icons = listOf(IconCollection.Icon(id = "8831a88a-d05d-4ae0-95fe-00d5684c4656", type = Light),)), matchRules = listOf()),
SupportedService(id = "df8f7dea-9b3d-4058-bd1e-4a2e8d93f45e", name = "NetSuite", issuers = listOf("production.netsuite.com"), tags = listOf(), iconCollection = IconCollection(id = "cb4c0bb5-5c0c-43de-aa26-6ada823f0466", name = "NetSuite", icons = listOf(IconCollection.Icon(id = "797abb98-44a6-4422-952f-e19826fcdd00", type = Light),)), matchRules = listOf()),
SupportedService(id = "dfc48abc-3fd9-4456-833f-fcaa52691ccc", name = "Stripe", issuers = listOf("Stripe"), tags = listOf(), iconCollection = IconCollection(id = "755cdcde-a73e-49a1-adf4-a6cc2b85174c", name = "Stripe", icons = listOf(IconCollection.Icon(id = "b4bcbfdb-661a-4e9f-805e-857e91854bde", type = Light),)), matchRules = listOf()),
SupportedService(id = "e085ea95-678d-4b5d-97b4-2b7107567069", name = "Robinhood", issuers = listOf("Robinhood"), tags = listOf(), iconCollection = IconCollection(id = "6582193f-c4bb-4aa2-b7fe-6efa02bd6995", name = "Robinhood", icons = listOf(IconCollection.Icon(id = "47ac04e8-1771-49da-9c8f-b7b60a7c8980", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "e0a0a866-8269-4b7e-b659-3758ecd06100", name = "Apple", issuers = listOf(), tags = listOf(), iconCollection = IconCollection(id = "90caf674-4269-4193-9749-4849f97cfb53", name = "Apple", icons = listOf(IconCollection.Icon(id = "4bb70c6d-ce78-4580-9aaa-e84b6355fc47", type = Light),IconCollection.Icon(id = "56919108-2ea3-4c16-9ccb-3b196c4d7347", type = Dark),)), matchRules = listOf(MatchRule(text = "apple", field = Label, matcher = Contains, ignoreCase = true),)),
SupportedService(id = "e0d3d638-1fa2-4aa4-8242-4920bd151226", name = "Blockchain.com", issuers = listOf("blockchain.info"), tags = listOf(), iconCollection = IconCollection(id = "01f35a89-4444-4208-a405-c914340df362", name = "Blockchain", icons = listOf(IconCollection.Icon(id = "f67a5aed-47dc-4487-ab7f-bdc1ffa93ec8", type = Light),)), matchRules = listOf()),
SupportedService(id = "e325587d-695f-49b2-82a3-130e10640db1", name = "Tumblr", issuers = listOf("Tumblr"), tags = listOf(), iconCollection = IconCollection(id = "7e039b98-b8b9-4a7c-a3f9-2059ab85a9ea", name = "Tumblr", icons = listOf(IconCollection.Icon(id = "d6701bed-a9c5-48eb-acd8-303059858dee", type = Light),)), matchRules = listOf()),
SupportedService(id = "e32cb9ed-f0a0-46e5-8011-0c8d33617adf", name = "Tebex.io", issuers = listOf("Tebex.io"), tags = listOf(), iconCollection = IconCollection(id = "29b478a1-d863-42de-ac32-095af746914c", name = "Tebex.io", icons = listOf(IconCollection.Icon(id = "9e6d1f75-c4fc-4f52-bb07-d15bcf319958", type = Light),)), matchRules = listOf()),
@@ -339,6 +352,7 @@ object SupportedServices {
SupportedService(id = "f506d1b4-099d-495e-a1a4-c7ecec4d007d", name = "HurricaneElectric", issuers = listOf("ipv6.he.net"), tags = listOf(), iconCollection = IconCollection(id = "1d9af0ec-056c-4d54-9f99-74011dd76dc5", name = "HurricaneElectric", icons = listOf(IconCollection.Icon(id = "a0288553-c0ff-4baf-93b1-97b871c4163b", type = Light),)), matchRules = listOf()),
SupportedService(id = "f5a9a8e5-3167-4b11-a680-03d8aad50784", name = "Joomla", issuers = listOf("Joomla"), tags = listOf(), iconCollection = IconCollection(id = "fb3f31b8-6ea6-44f9-9129-9094f54ff8f5", name = "Joomla", icons = listOf(IconCollection.Icon(id = "e4660cc9-7c81-4ac0-9c5c-f020f18a8ebc", type = Light),)), matchRules = listOf()),
SupportedService(id = "f6de2caf-aa67-4e98-a6aa-3682b826a21c", name = "BTCMarkets", issuers = listOf("BtcMarkets"), tags = listOf(), iconCollection = IconCollection(id = "2f4917ca-8e34-4271-9e6c-5d234a181a94", name = "BTCMarkets", icons = listOf(IconCollection.Icon(id = "63725a39-7e60-4f11-9c2a-640a270ef96c", type = Light),)), matchRules = listOf()),
+ SupportedService(id = "f73f0f10-fa7f-471d-980c-7f97a1546688", name = "DEGIRO", issuers = listOf("DEGIRO"), tags = listOf(), iconCollection = IconCollection(id = "38d29122-8fa4-484d-94ee-d10f1a5efbc3", name = "DEGIRO", icons = listOf(IconCollection.Icon(id = "f9a680a5-7d15-4e84-9478-c8049bc862f9", type = Light),)), matchRules = listOf()),
SupportedService(id = "f762bea4-d385-4a35-be4a-ffcda80931e9", name = "Hetzner", issuers = listOf("Hetzner"), tags = listOf(), iconCollection = IconCollection(id = "86ee7a24-b59a-4f75-b2aa-18bb718b903a", name = "Hetzner", icons = listOf(IconCollection.Icon(id = "221c3b16-aac7-4240-acf9-e9eb3c921945", type = Light),IconCollection.Icon(id = "b2ba9cc5-047b-4bbe-98d1-2e526ba7fac4", type = Dark),)), matchRules = listOf()),
SupportedService(id = "f76dc205-7c4a-4413-b80b-75bf8898502e", name = "Questrade", issuers = listOf("Questrade"), tags = listOf(), iconCollection = IconCollection(id = "46a1e2f1-6949-46f8-8929-92059652e041", name = "Questrade", icons = listOf(IconCollection.Icon(id = "c072cac6-531b-4ca1-ae13-d384f675fe69", type = Light),)), matchRules = listOf()),
SupportedService(id = "fa0801c4-e26b-47b2-85b3-8e1f3dcd21c5", name = "Crypto.com", issuers = listOf("crypto.com"), tags = listOf(), iconCollection = IconCollection(id = "93d4f71f-05e8-4442-885b-24b742be8459", name = "Crypto.com", icons = listOf(IconCollection.Icon(id = "45965f47-72c5-4837-be53-824941c6c36c", type = Light),IconCollection.Icon(id = "9b5ba37c-271b-4022-bc99-567ed8f8e71a", type = Dark),)), matchRules = listOf()),
diff --git a/resources/src/main/res/values-de/strings.xml b/resources/src/main/res/values-de-rDE/strings.xml
similarity index 98%
rename from resources/src/main/res/values-de/strings.xml
rename to resources/src/main/res/values-de-rDE/strings.xml
index 820f96c9..8c59f70e 100644
--- a/resources/src/main/res/values-de/strings.xml
+++ b/resources/src/main/res/values-de-rDE/strings.xml
@@ -5,7 +5,7 @@
Release: Working copy
Locale: de-DE, German (Germany)
Exported by: rafakob
- Exported at: Thu, 23 Feb 2023 14:33:22 -0800
+ Exported at: Thu, 09 Mar 2023 00:56:28 -0800
-->
Es gibt keinen korrekten QR-Code in dem ausgewählten Bild. Bitte versuch ein anderes Bild.
Dienst auswählen
@@ -681,8 +681,8 @@
Google Drive Sync
Möchtest du deine Sicherungsdatei aus Google Drive löschen?
Google Sync wird deaktiviert sein. Deine Tokens werden lokal bestehen bleiben, aber die 2FAS App wird aus deinem Google Account auf diesem und deinen anderen synchronisierten Geräten ausgeloggt.
- Warten auf Synchronisierung…
- Synchronisiere…
+ Warten auf Synchronisierung...
+ Synchronisiere...
Du wirst eine verschlüsselte Sicherungsdatei importieren.
Wähle eine JSON Datei aus
Exportiere deine Konten von Aegis in eine unverschlüsselte JSON Datei und lade sie über die \"JSON Datei auswählen\" Option aus. Vergiss nicht nach einem erfolgreichen Import die Datei zu entfernen.
@@ -710,4 +710,12 @@
Ein SSL-Fehler ist aufgetreten, wodurch eine sichere Verbindung zum Server nicht hergestellt werden kann. Stelle sicher, dass du die neueste App-Version hast oder versuche, das Netzwerk zu ändern.
Die Datei, die du versuchst zu importieren, ist zu groß. Die Größenbeschränkung beträgt 10 MB.
Die Datei, die du versuchst zu importieren, ist ungültig oder beschädigt. Bitte wähle eine andere Datei.
+ Aktive Suche
+ Aktive Suche beim Starten
+ Läuft ab in:
+ Widget-Einstellungen
+ Eingabe muss eine Integer-Nummer sein
+ Eingabe muss eine Nummer sein
+ Eingabe darf nicht leer sein
+ Eingabe ist zu lang. Limit: %d
diff --git a/resources/src/main/res/values-pt-rPT/strings.xml b/resources/src/main/res/values-pt-rPT/strings.xml
new file mode 100644
index 00000000..9dd3f1f5
--- /dev/null
+++ b/resources/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,721 @@
+
+
+
+
+ Usada para digitalizar códigos QR.
+ Podes usar o Face ID para desbloqueares a aplicação.
+
+ 2FAS Authenticator
+ 2FA Authenticator (2FAS App)
+ OK
+ Adicionar
+
+ Cancelar
+ Notificações
+
+ %1$d de %2$d
+
+ O serviço já foi removido da cópia de segurança.
+
+ O serviço já foi modificado da cópia de segurança.
+
+ O utilizador está acima da cota no iCloud
+
+ O iCloud não está disponível
+
+ O iCloud foi desativado pelo utilizador
+
+ Cópia de Segurança 2FAS
+ Fechar
+ Continuar
+ Copiar
+ Remover
+ Dispensar
+ Concluído
+ Editar
+ Digitar código manualmente
+ Erro
+ Informação
+ Próximo
+ Aviso
+ Desligado
+ Ligado
+
+ Aponta a tua câmara à tela para digitalizares o código QR
+ Renomear
+ Tentar novamente
+ Guardar
+ Digitalizar Código QR
+ Serviço
+ Definir
+ Saltar
+ Tokens
+ Atenção
+ Sem resultados
+ Customizar
+ Confirmar
+ Recusar
+
+ O texto fornecido é muito longo (máximo de %d caracteres)
+ Entendido!
+ A verificar...
+
+ Confirma a tua impressão digital para continuar.
+
+ Usa o teu PIN desta vez
+
+ És incrível!
+ O teu telemóvel acabou de se tornar numa privada e segura chave para os teus serviços online graças à aplicação 2FAS - confiada por mais de 3 milhões de utilizadores mundialmente.
+ Simples
+ Conecta o 2FAS com os teus serviços online. Ativa a segurança de dois fatores em segundos com o teu código QR.
+ Privado
+ O 2FAS respeita e protege a tua privacidade. Esta aplicação nunca irá coletar, processar, ou usar quaisquer dados pessoais.
+ Seguro
+ Os teus tokens estão guardados offline no armazenamento do teu dispositivo, por isso lembra-te de fazer uma cópia de segurança aos teus serviços! Utiliza a Sincronização através do iCloud e uma palavra-passe ou PIN para os proteger de acesso não autorizado e dano ao dispositivo.
+
+ Começa a usar o 2FAS
+ Termos de serviço
+ Conecta as tuas contas de serviços online com o 2FAS ou importa os teus tokens.
+ Conecta um novo serviço
+
+ Importa um ficheiro de cópia de segurança 2FAS
+
+ Importa do Google Authenticator
+
+ Não sabes o que fazer?
+
+ Exporta as tuas contas do Google Authenticator para um código QR através da opção \"Transferir Contas\". De seguida, captura a tela e usa o botão \"Escolher código QR\" abaixo. Se estiveres a importar códigos de outro dispositivo, usa o botão \"Digitalizar código QR\".
+
+ Escolher código QR
+
+ Digitalizar código QR
+
+ A adicionar um novo código
+
+ A Chave do Serviço foi copiada
+
+ Este token já está presente na lista
+ O Contador foi copiado
+ O Token foi copiado
+ O Token seguinte foi copiado
+
+ Queres adicionar este código: %s?
+
+ Abrir Definições
+ PIN incorreto
+ Mudar o PIN
+ Por favor, confirma que és o dono deste dispositivo
+
+ Por favor, confirma o teu novo PIN
+ Criar PIN
+ Por favor, digita o teu PIN atual
+
+ Por favor, digita o teu novo PIN
+
+ Por favor, digita o teu PIN
+
+ Muitas tentativas. Por favor, tenta novamente %s
+ Muitas tentativas. Por favor, tenta novamente em %s minutos.
+
+ Muitas tentativas. Por favor, tenta novamente mais tarde.
+
+ Muitas tentativas. Por favor, tenta em um minuto
+ Cópia de Segurança e Sincronização
+ Escolher tópico
+ Configura o serviço de e-mail e tenta novamente
+ Geral
+ Os serviços de e-mail não estão disponíveis
+ Problema
+ Segurança
+ Selecionar tamanho do PIN
+ Definições
+
+ Sugestão
+ Avançado
+ Widgets
+ Mostrar os serviços selecionados nos Widgets da Página Inicial
+
+ Depois de ativares os widgets, todos os teus tokens irão ser acessíveis sem precisar de código PIN.\n\nTens a certeza que queres ativar os widgets?
+ Mostrar token seguinte
+ Mostrar os tokens recebidos na lista.
+ Lixo
+ Restaurar
+ O Lixo está vazio
+ Partilhar aplicação
+
+ Tens a certeza que queres eliminar o token de:
+ Mover para o Lixo
+ Informação adicional
+ Escolher método
+ Chave de Serviço duplicada
+
+ Chave de Serviço incorreta (apenas números 2 a 7, letras), máx, 512 caracteres
+ Ok, vamos tentar novamente
+
+ Aponta a tua câmara ao ecrã para digitalizar o código QR
+
+ Chave do Serviço
+ Este código QR leva-te à App Store
+
+ Eliminar Token
+
+ Procurar serviço
+
+ Desculpa, o serviço não foi encontrado
+
+ Tenta novamente com um termo de pesquisa diferente
+ A chave é muito pequena. Mínimo 4 caracteres
+ Nome do Serviço
+
+ A chave de serviço do código digitalizado já está a ser utilizada em %s. Deves estar a digitalizá-lo novamente
+ Este código está incorreto ou não é suportado. Tenta novamente.
+ Tipo de Nome do Serviço
+ Digita o Nome do Serviço
+
+ Infelizmente, não sabemos esse serviço. Como queres nomeá-lo?
+
+ Não irás poder mais restaurar este token.
+ Cor do emblema
+ Mudar ícone da marca
+ Mudar nome
+ Informação do Serviço
+ Personalização
+ Ícone da marca
+ Nome
+
+ Eliminar este serviço da aplicação 2FAS
+
+ Nome (1 ou 2 caracteres):
+ Escolher cor do fundo:
+ %s foi adicionado
+ Próximo Token: %s
+ Valor do Token seguinte
+ Os meus Tokens
+ A eliminar grupo
+
+ Todos os tokens irão ser movidos para o grupo: \"Os meus tokens\"
+ Adicionar grupo
+ Nome do grupo:
+ Selecionar da Galeria
+ A câmara está indisponível
+
+ Verifica se a aplicação possuí as permissões necessárias nas Definições do Sistema
+ Não foram encontrados códigos QR
+
+ Não existe um código QR correto na imagem selecionada. Por favor tenta uma imagem diferente.
+ Selecionar serviço
+ Qual é o serviço que queres adicionar?
+ Digita este token novamente
+
+ Desbloqueia e digita este token novamente
+ Grupo
+ Selecionar grupo
+ Importar tokens 2FA da aplicação Google Authenticator
+ Este código QR permite importar tokens do Google Authenticator
+
+ %1$d de %2$d
+ Os tokens irão ser importados.
+ Ordenar por
+
+ A - Z
+
+ Z - A
+ Manual
+ Avançado
+
+ Alerta
+
+ Mudar definições avançadas não é recomendado. Fá-lo apenas quando o fornecedor do 2FA pedir e quando tiveres instruções claras.
+ Definições do token
+ Autenticação OTP
+ Algoritmo
+ Tempo de atualização
+ Número de dígitos
+ Contador
+ Contador inicial
+
+ %d s
+ HOTP
+ TOTP
+ Mudar definições avançadas não é recomendado. Fá-lo apenas quando o fornecedor do 2FA pedir e quando tiveres instruções claras.
+ Melhor prática
+ O serviço foi adicionado com sucesso. Nós recomendamos fortemente que tu
+ elimines o código QR da tua galeria.
+ Se alguém tiver acesso a este código QR, irão poder usar os códigos 2FA para este serviço.
+ Pedir um ícone
+ Avisa-nos no Discord
+ Entra no nosso servidor de Discord
+ e deixa os utilizadores votarem para os ícones pedidos.
+ ou
+ Avisa o fornecedor do serviço
+ Podes usar Redes Sociais ou e-mail e partilhar este texto com eles:
+ Olá! Estou a usar a aplicação 2FAS para entrar no teu serviço com autenticação de dois fatores. Contudo, o teu ícone está a faltar! Podes submeter o teu ícone aqui: https://2fas.com/yb
+ https://2fas.com/yb
+ Não te esqueças de mencionar a conta oficial da empresa!
+ Não consegues encontrar um ícone de uma marca na aplicação 2FAS?
+ Pedir um ícone de uma marca
+ Pedir um ícone de uma marca
+ Seleciona o método pedido
+ Pedir um ícone enquanto utilizador
+ Envia um ícone enquanto empresa
+
+ Não vais conseguir entrar na tua conta %s sem este token enquanto tiveres ativado a autenticação de dois fatores para essa conta.
+ Mostrar a Chave do Serviço
+ Copiar a Chave do Serviço
+
+ Contador com os segundos restantes para a mudança do token
+ Remover
+ Serviço removido
+
+ Este campo contém uma Chave Secreta. Para a revelar, usa o botão Mostrar. Só irá funcionar se tiveres configurado o PIN da aplicação para o ecrã bloqueado
+ Nome do serviço: %s
+ Informação adicional: %s
+ Token %s. Clica para copiares
+ Editar %s
+ Etiqueta do serviço com o nome %1$s e cor %2$s
+ Ícone do serviço %s
+ Selecionado
+ Não selecionado
+ Cor do emblema: %s
+ Dispensado
+ Apenas números de 2 a 9, letras. Pelo menos 4 caracteres
+ Adicionar serviço
+ Adicionar grupo
+
+ Usa o botão Adicionar Serviço para adicionar um novo serviço
+ Sem resultados para a pesquisa
+
+ Usa Ordenar Por para definir a ordenação dos serviços
+ A carregar conteúdo
+ Não foi possível fazer a cópia de segurança dos tokens porque a chave secreta de \"%s\" contém caracteres inválidos. Remove-a da lista e tenta novamente.
+ Importar
+ Exportar
+ A cópia de segurança 2FAS irá ser desativada para proteger a sua integridade
+ Erro ao exportar o ficheiro
+ A importação foi concluída com sucesso
+
+ Uma outra aplicação está a usar a câmara. Se fechar outras aplicações não funcionar, tenta reiniciar o dispositivo
+
+ A câmara não está disponível devido a sobrecarga do sistema. Tenta reiniciar o dispositivo
+ Não é possível iniciar a câmara. Tenta reiniciar o dispositivo
+ Não é possível iniciar a câmara em modo de ecrã dividido. Abre a aplicação em tela cheia e tenta novamente
+ Como restaurar a aplicação 2FAS?
+ Restauro da aplicação
+
+ Se te esqueceste do PIN ou queres formatar a aplicação 2FAS, tens de reinstalar a aplicação.
+
+ Avisamos que se não tiveres uma cópia de segurança e formatares a aplicação, irás perder o acesso aos teus códigos. E, por isso, irás perder acesso às tuas contas protegidas por autenticação de dois fatores.
+
+ Se tiveres uma cópia de segurança, não te preocupes, irás poder restaurar todos os teus códigos.
+ Cópia de Segurança na nuvem
+ Sincronização através do iCloud
+ RECOMENDAÇÃO: A sincronização através do iCloud mantém os teus tokens seguros em caso de perca ou dano do teu dispositivo. Deixa-a ligada.
+ Ficheiro de Cópia de Segurança
+
+ Usa o Ficheiro de Cópia de Segurança para teres acesso offline dos teus tokens
+ Remoção da Cópia de Segurança
+ Eliminar cópia de segurança 2FAS
+ Atenção! Se eliminares a Cópia de Segurança 2FAS, irás apagar também todos os tokens de outros dispositivos sincronizados com esta conta. Para preservar os tokens noutros dispositivos, verifica que desativaste a cópia de segurança 2FAS antes da eliminação
+
+ Eu quero eliminar esta Cópia de Segurança
+ Exportar cópia de segurança para ficheiro
+
+ Podes importar ficheiros exportados de outros dispositivos com a aplicação 2FAS
+ Exportar para ficheiro
+ Verificar PIN
+ Guardar ficheiro
+ Importar ficheiro de cópia de segurança
+
+ Irás importar um ficheiro de cópia de segurança a conter
+ Importar ficheiro
+ Escolher outro ficheiro
+ Nada para importar
+ Erro de ficheiro!
+
+ Os serviços do ficheiro irão ser fundidos com os da aplicação
+ Ou este ficheiro está vazio, ou todos os serviços dentro dele já se encontram disponíveis na aplicação
+ Precisas de uma versão mais recente da aplicação para importares o conteúdo do ficheiro. Podes encontrar a versão mais recente na App Store
+ Não foi possível ler este ficheiro. Pode estar danificado, ou ocorreu um erro ao acessá-lo. Por favor escolhe outro
+ Palavra-passe
+ Repetir palavra-passe
+ Caráter incorreto. Usa letras de A-Z, dígitos e caracteres especiais: -_/!#$%&+*~@?=^.,\'(){}[]:;<>|
+ A frase fornecida é muito curta (mín. 3 caracteres)
+ As palavras-passes não coincidem
+ Guardar e exportar
+ Para aumentar a proteção do teu ficheiro de cópia de segurança, por favor, define a palavra-passe
+ Digita a palavra-passe para este ficheiro de cópia de segurança para proceder ao processo de importação
+ Define uma palavra-passe para este ficheiro de cópia de segurança
+ Palavra-passe Incorreta
+
+ %d novo(s) serviço(s)
+
+ %d serviço(s) importado(s) de ficheiro
+
+ Existe um problema com o iCloud. Verifica as definições do sistema
+
+ Este ficheiro está numa versão de formato mais recente do que a aplicação suporta
+
+ Este ficheiro está encriptado. Nós suportamos apenas ficheiros não encriptados.
+ Copiar token
+
+ Sim, eu quero eliminar este serviço
+ Neutro
+ Azul claro
+ Índigo
+ Roxo
+ Turquesa
+ Verde
+ Vermelho
+ Laranja
+ Amarelo
+ Conhecimento
+ Ajuda e Partilha
+ Diz a um amigo
+ Escreve uma crítica
+ Sobre
+ Política de Privacidade
+ Termos de Serviço
+ Versão da aplicação: %s
+ Sem limite
+ Código PIN
+ Segurança da aplicação
+ Definições de bloqueio
+ Face ID
+ Touch ID
+
+ Bloquear após X tentativas falhadas:
+ Selecionar o número máximo de tentativas de códigos mal sucedidos antes de bloquear a aplicação
+ Tempo de bloqueio
+ 3 minutos
+ 5 minutos
+ 10 minutos
+ Máximo de tentativas falhadas
+ Código de 4 dígitos
+ Código de 6 dígitos
+ Autenticação Biométrica
+ Doações
+ Doar a 2FAS
+ Nova versão
+ Uma nova versão de 2FAS está disponível na AppStore. Atualiza agora!
+ Atualiza agora
+
+ Saltar esta versão
+
+ Atualizar depois
+ Extensão do Navegador de Internet
+ Extensão de Navegador de Internet 2FAS
+ Instala a extensão do navegador de Internet 2FAS no teu computador
+ Conecta-a com a aplicação 2FAS
+ Mais informação:
+ 2fas.com/be
+ Conecta com o navegador de Internet
+ https://www.2fas.com/be
+ Conexão bem sucedida!
+ O 2FAS irá enviar uma notificação sempre que entrares nos teus serviços online ao usar este navegador de internet. Não irás precisar mais de digitar novamente os teus tokens a cada uso.
+ A conexão falhou :(
+ Este código QR não foi reconhecido, e a 2FAS não conseguiu conectar este dispositivo com a extensão do navegador de Internet. Por favor, tenta novamente.
+
+ Já está conectado!
+
+ Esta extensão do navegador de Internet já está conectada com este dispositivo.
+ Entrar em contacto
+ Conexão com o navegador de Internet
+
+ Dispositivos conectados (navegadores de Internet)
+ Adicionar novo
+
+ Nome do dispositivo
+ Nome do dispositivo
+ Nome
+ Este nome irá ajudar-te a identificar este dispositivo entre outros conectados com a extensão do navegador de Internet 2FAS
+ Definições da Extensão do Navegador de Internet
+ <NOME_DESCONHECIDO>
+ %1$s pediu um token 2FA para %2$s. Seleciona um serviço para autorizar e guardar com este domínio.
+ Pedido do Navegador de Internet
+
+ O token foi enviado com sucesso!
+ Erro ao enviar o código. %s
+ Eliminar dispositivo
+ Tens a certeza que queres eliminar este dispositivo?
+ Data de conexão
+ Esquecer este navegador de internet
+
+ Lista de domínios conectados
+ Eliminar domínio?
+ A próxima vez que usares a extensão do navegador para entrar em %s, irá te ser pedido para conectares este domínio novamente.
+ Notificações
+ Para teres acesso a funções como a Extensão do Navegador de Internet, a aplicação precisa de acesso para enviar notificações. Podes mudar esta definição nas Definições do Sistema a qualquer momento.
+ Pedido expirado
+ Pedido de Token 2FA
+ Queres partilhar o código 2FA de\u0020
+ Sem notificações
+ 2 F A S
+ 2FAS
+ O Google Drive não está disponível
+ O Google Drive foi desativado pelo utilizador
+ Precisas de uma versão mais recente da aplicação para importares o conteúdo do ficheiro. Podes encontrar a versão mais recente na Google Play Store
+ Este código QR leva-te à Google Play Store
+ Os teus tokens estão guardados offline no armazenamento do teu dispositivo, por isso lembra-te de fazer uma cópia de segurança aos teus serviços! Utiliza a Sincronização através do Google Drive e uma palavra-passe ou PIN para os proteger de acesso não autorizado e dano ao dispositivo.
+ Uma nova versão de 2FAS está disponível na Google Play Store. Atualiza agora!
+ O PIN não coincide! Por favor, tenta novamente.
+ Opções de Desenvolvedor
+ Importar tokens
+ Resultado da conexão
+ ATENÇÃO
+ Aponta a tua câmara para o código QR certo e digitaliza novamente.
+ Queres descartar as alterações?
+ Mudanças não guardadas
+ A chave tem um formato inválido
+ Erro de sistema! Não existe uma aplicação de galeria no sistema.
+ Permissão do Google Drive
+ Precisamos de permissão do Google Drive para guardar os ficheiros de cópia de segurança nos dados de aplicações.
+ É necessária uma conexão de Internet
+ Para sincronizares com o Google, precisas de uma conexão de Internet.
+ Para removeres o acesso do Google Drive, precisas de uma conexão de Internet.
+ Guarda e sincroniza automaticamente o teu ficheiro de cópia de segurança na pasta escondida no teu Google Drive. Só a aplicação 2FAS consegue aceder a esta pasta.
+ Ocorreu um erro na sincronização da cópia de segurança. Por favor, reinicia a aplicação depois de alguns minutos e tenta novamente.
+ Ocorreu um erro na criptografia da cópia de segurança. Por favor, coloca a tua palavra-passe novamente.
+ Ocorreu um erro na descriptografia da cópia de segurança. Por favor, coloca a tua palavra-passe novamente.
+ Existe um problema com o iCloud. Verifica as definições do sistema
+ Houve um problema com as permissões da tua conta do Google Drive. Tenta ativar e desativar a sincronização.
+ A tua cópia de segurança está protegida por palavra-passe. Liga-a e digita a tua palavra-passe.
+ A tua cópia de segurança está protegida por palavra-passe mas a que forneceste está incorreta. Liga-a e digita a tua palavra-passe.
+ Atribuição de Serviço
+ Personalização
+ Mudar emblema
+ Avançado
+ Pedir um ícone
+ Editar nome
+ Tens a certeza que queres eliminar este grupo?
+ O teu ficheiro de cópia de segurança está pronto para exportar
+ Exporta este ficheiro para manter os teus tokens 2FAS numa cópia de segurança segura. Irás poder importá-lo depois para este ou outros dispositivos com a aplicação 2FAS.
+ Exportar ficheiro sem palavra-passe (não recomendado)
+ O ficheiro irá ser sincronizado com a lista de serviços da aplicação.
+ Talvez depois
+ Ligar
+ Não foram adicionados serviços
+ RECOMENDAÇÃO: A sincronização através do Google Drive mantém os teus tokens seguros em caso de perca ou dano do teu dispositivo. Deixa-a ligada.
+ Estás a desligar a Sincronização do Google Drive?
+ Os tokens 2FA irão continuar no teu dispositivo e no teu Google Drive, mas não irão ser sincronizados. Irás também desconectar a tua Conta Google.
+ Lembra-te, em caso de perca ou dano deste dispositivo ou a eliminação da aplicação, poderás não conseguir recuperar os teus tokens, e irás perder acesso às tuas contas online protegidas com 2FA.
+ Protege um ficheiro de cópia de segurança do Google Drive com uma palavra-passe
+ Eliminar palavra-passe
+ Eliminar a palavra-passe do ficheiro da cópia de segurança do teu Google Drive
+ Conta Google
+ Última sincronização
+ O 2FAS irá enviar uma notificação sempre que entrares nos teus serviços online ao usar este navegador de internet. Não irás precisar mais de digitar novamente os teus tokens a cada uso.
+ Nome do Navegador de Internet
+ Autenticar
+ Usa as tuas credenciais biométricas
+ Licenças de código aberto
+ Podes importar os teus tokens para a 2FAS de aplicações diferentes. Escolhe uma aplicação da lista e segue as instruções.
+ Selecionar aplicação
+ Google Authenticator
+ Aegis
+ Raivo OTP
+ 2FAS Auth
+ Sim
+ Não
+ Procurar
+ Nenhuma aplicação suporta esta ligação
+ Permissão da Câmara
+ A permissão da câmara é necessária para digitalizares códigos QR. Se quiseres usar esta função, vai a Informações da Aplicação, Permissões e ativa a Câmara.
+ Desativar PIN
+ Por favor digita o teu novo PIN de %s
+ PIN incorreto! Por favor tenta outra vez
+ Biometria
+ Ajuda 2FAS
+ Opções de Desenvolvedor
+ Bloqueio Biométrico
+ Tema
+ Auto
+ Auto - Definição do Sistema
+ Escuro
+ Claro
+ O token foi copiado para a área de transferência!
+ O token seguinte foi copiado para a área de transferência!
+ Queres eliminar permanentemente este serviço de 2FA?
+ Adicionar manualmente
+ Este código QR não funciona!
+
+ Não foi possível ler o código QR da imagem!
+ Tenta selecionar uma imagem diferente.
+ Eliminar serviço permanentemente
+
+ O serviço não foi adicionado porque a Chave de Serviço é inválida. Tenta novamente.
+
+ Um serviço com esta chave já existe. Queres sobrepô-lo?
+ A chave contém caracteres inválidos
+ Mostrar a Chave do Serviço
+
+ A tua Chave de Serviço está protegida. Por favor, adiciona um PIN ou um bloqueio por impressão digital para a ver.
+ A lista de serviços está vazia
+ Usa o butão \"+\" para adicionar um novo serviço
+ Não irás poder entrar na tua conta %s sem este token enquanto tiveres a autenticação de dois fatores ativada para essa conta.\n\nNão irás poder restaurar este token do lixo da 2FAS.
+ Os serviços foram importados com sucesso!
+
+ Precisas de uma conexão de Internet para sincronizar a tua cópia de segurança. Por favor, liga-te à Internet e tenta novamente.
+ Atualizar aplicação
+
+ Por favor atualiza para a versão mais recente de 2FAS para adquirir todas as funções e manter um nível de segurança elevado.
+ Estás a eliminar
+
+ da tua lista de serviços 2FAS.\n\nLembra-te, enquanto tiveres a autenticação de dois fatores ativada, não irás poder entrar na tua conta %s sem este token.
+ Apagar
+ Exportar
+ Partilhar
+ Importar cópia de segurança do ficheiro
+ Tu irás importar o ficheiro de cópia de segurança com
+ Importar
+ Os tokens visíveis no widget não são protegidos pelo teu código PIN. Tens a certeza que os queres apresentar no widget?
+ ATENÇÃO!
+ Sim, tenho a certeza
+ Cópia de Segurança 2FAS
+ Liga a cópia de segurança 2FAS e mantém os teus códigos seguros no Google Drive.
+ Desculpa, marca não encontrada
+
+ Seleciona que serviços vão estar visíveis no widget:
+ Desativar Sincronização
+ Cancelar
+ Definir palavra-passe
+ Eliminar cópia de segurança do Google Drive
+
+ Se eliminares este ficheiro do teu Google Drive, a sincronização em todos os teus dispositivos irá ser desativada, e os teus tokens irão permanecer apenas neste e noutros dispositivos através do armazenamento local.
+ A tua aplicação 2FAS já está conectada com este navegador de Internet.
+
+ Digitaliza o código QR novamente
+ Erro
+
+ O código QR digitalizado contém um formato que não é suportado. Por favor, tenta novamente.
+ Ocorreu um erro desconhecido ao digitalizar o código QR. Por favor, tenta novamente.
+ Usar o PIN desta vez
+ Ativar autenticação
+ Cancelar
+
+ Para ativar o Bloqueio por Biometria, precisas de ativar e definir um código PIN.
+ Seleciona o tempo para o qual a aplicação será bloqueada.
+ Parece que, ou ficaste sem espaço no disco, ou um evento no passado danificou a base de dados
+ A cópia de segurança na nuvem foi transferida para a nova versão. Atualiza a aplicação
+ A cópia de segurança na nuvem está encriptada. Atualiza a aplicação para suportar esta função
+ Continuar para a aplicação
+ Cancelar
+ Autorizar
+ Dispensar
+ Pedido enviado
+ Enviar token?
+ %1$s pediu um token 2FAS para %2$s
+ Erro ao enviar token
+ Este website não foi conectado
+ Abre a aplicação e seleciona um serviço para este domínio
+ Abre a aplicação e verifica se a extensão do navegador de Internet está devidamente conectada
+ Houve um problema com a conexão
+ Por favor tenta novamente
+ Erro
+ Para a extensão do navegador de internet funcionar, por favor adiciona serviços à aplicação 2FAS
+ Aprovar
+ Recusar
+ Liga o código PIN e a autenticação por Face ID para prevenir acesso não autorizado aos teus tokens neste dispositivo.
+ Liga o código PIN e a autenticação por Touch ID para prevenir acesso não autorizado aos teus tokens neste dispositivo.
+ O código fornecido está incorreto. Por favor, verifica novamente
+ O código fornecido expirou. Por favor contacta-nos para obter um novo
+ Não existe acesso à Internet. Por favor verifica a conexão e tenta novamente
+ Parece haver um problema com o nosso servidor. Se continuar por favor contacta-nos\u0020
+ A operação falhou
+ Registros enviados
+ Vamos verificar, mas pode demorar algum tempo.
+ Enviar
+ A enviar registros
+ O código fornecido pela equipa de ajuda foi preenchido automaticamente. Enviar registros?
+ Por favor digita ou cola o código fornecido pela nossa equipa de ajuda
+ Enviar registros
+ Vê só esta aplicação de autenticação em 2 fatores: https://2fas.com
+ Reconhecimentos
+ Importar de uma aplicação externa
+
+ - momento atrás
+ - momentos atrás
+
+
+ - %d minuto atrás
+ - %d minutos atrás
+
+
+ - %d hora atrás
+ - %d horas atrás
+
+
+ - %d dia atrás
+ - %d dias atrás
+
+
+ - %d semana atrás
+ - %d semanas atrás
+
+
+ - %d mês atrás
+ - %d meses atrás
+
+ Ocorreu um erro desconhecido! Tenta novamente!
+ O ficheiro foi guardado com sucesso!
+ Não foi possível partilhar o ficheiro!
+ Escreve a tua palavra-passe
+ Digita a palavra-passe de segurança para proceder com a remoção.
+ Digita a palavra-passe de segurança para proceder com a remoção do acesso ao Google.
+ Definições de sincronização
+ Ficheiro local
+ Sincronização através do Google Drive
+ Queres eliminar o teu ficheiro de cópia de segurança do Google Drive?
+ A sincronização através do Google irá ser desativada. Os teus tokens irão permanecer localmente, mas a aplicação 2FAS será desconectada da tua Conta Google, neste e noutros dispositivos sincronizados.
+ A aguardar para sincronizar...
+ A sincronizar...
+ Irás importar um ficheiro de cópia de segurança encriptado.
+ Escolhe o ficheiro JSON
+ Exporta as tuas contas da aplicação Aegis para um ficheiro JSON não encriptado e usa o botão \"Escolhe o ficheiro JSON\" para importá-lo. Lembra-te de remover o ficheiro após importares com sucesso.
+ Usa a opção \"Exporta OTPs para ficheiro ZIP\" nas definições da aplicação Raivo, guarda o ficheiro ZIP, extrai-o e usa o botão \"Escolhe o ficheiro JSON\" para importar o ficheiro JSON.
+ Contudo, não existe nenhum serviço que pode ser importado.
+ Tenta novamente
+ Prosseguir
+ A importar tokens 2FA da aplicação Google Authenticator
+ A importar tokens 2FA da aplicação Aegis
+ A importar tokens 2FA da aplicação Raivo
+ Este código QR permite importar tokens do Google Authenticator
+ Este ficheiro JSON permite importar tokens da aplicação Aegis.
+ Este ficheiro JSON permite importar tokens da aplicação Raivo.
+ Não foi possível ler nenhum token. Tenta selecionar um ficheiro diferente.
+ Informação da sincronização através do Google Drive
+ Tens a certeza? Sem a sincronização através do Google Drive, não irás poder restaurar os teus tokens se perderes ou formatares o teu telemóvel!
+ O código foi enviado com sucesso
+ Ocorreu um erro ao enviar o código
+ Adicionar novo serviço
+ Customizar serviço
+ Sugerido
+ Todos os serviços
+ Outros serviços
+ Erro SSL
+ Ocorreu um erro SSL, logo não foi possível fazer uma conexão segura ao servidor. Garante que tens a versão mais recente da aplicação ou tenta mudar a conexão de Internet.
+ O ficheiro que estás a tentar importar é muito grande. O limite de tamanho é 10 MB.
+ O ficheiro que estás a tentar importar é inválido ou está danificado. Por favor, escolhe outro ficheiro.
+ Pesquisa ativa
+ Pesquisa ativa ao iniciar
+ Expira em:
+ Definições do Widget
+ O valor tem de ser um número inteiro
+ O valor tem de ser um número
+ O valor não pode estar vazio
+ O valor é muito longo. Limite: %d
+
diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml
index 97e55236..4e6768f5 100644
--- a/resources/src/main/res/values/strings.xml
+++ b/resources/src/main/res/values/strings.xml
@@ -1,11 +1,10 @@
-
-
There is no correct QR code in the selected image. Please try a different image.
Select Service
@@ -712,4 +711,11 @@
The file you are trying to import is invalid or damaged. Please choose another file.
Active search
Active search on startup
+ Expires in:
+ Widget settings
+ Input must be integer number
+ Input must be a number
+ Input can not be empty
+ Input is too long. Limit: %d
+
diff --git a/widgets/src/main/res/layout/layout_widget_service_item.xml b/widgets/src/main/res/layout/layout_widget_service_item.xml
index c39adbe1..795a596f 100644
--- a/widgets/src/main/res/layout/layout_widget_service_item.xml
+++ b/widgets/src/main/res/layout/layout_widget_service_item.xml
@@ -106,7 +106,7 @@
style="@style/Text.Caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Expires in:"
+ android:text="@string/widgets__expires_in"
android:textColor="@color/textPrimary"
android:textSize="11sp" />