diff --git a/VocabularyTrainer.xcodeproj/project.pbxproj b/VocabularyTrainer.xcodeproj/project.pbxproj index 159489d..cae466b 100644 --- a/VocabularyTrainer.xcodeproj/project.pbxproj +++ b/VocabularyTrainer.xcodeproj/project.pbxproj @@ -49,6 +49,8 @@ 18943A0929094F470017E1A2 /* LanguageScreenViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageScreenViewController.swift; sourceTree = ""; }; 18943A0B2909726B0017E1A2 /* VocabularyCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VocabularyCell.swift; sourceTree = ""; }; B3657DFC290740D8000D76C8 /* AddNewWordViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddNewWordViewController.swift; sourceTree = ""; }; + B3BBF4422909F64B004B2125 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = "pt-BR"; path = "pt-BR.lproj/pp.html"; sourceTree = ""; }; + B3BBF4432909F653004B2125 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; CE0012FE2243F21C002F86DE /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; CE05F621229F17830097E3BB /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Main.strings; sourceTree = ""; }; CE05F623229F17AF0097E3BB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; @@ -283,6 +285,7 @@ Base, de, nl, + "pt-BR", ); mainGroup = CE86C53F2235AE20008A5B73; productRefGroup = CE86C5492235AE20008A5B73 /* Products */; @@ -331,8 +334,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CE86C584223684D2008A5B73 /* AddNewWordViewController.swift in Sources */, - CE86C5802235C8AD008A5B73 /* LanguageScreenViewController.swift in Sources */, B3657DFD290740D9000D76C8 /* AddNewWordViewController.swift in Sources */, CE86C54E2235AE20008A5B73 /* HomeScreenViewController.swift in Sources */, CE0012FF2243F21C002F86DE /* Extensions.swift in Sources */, @@ -385,6 +386,7 @@ CE05F623229F17AF0097E3BB /* en */, CE05F625229F17C40097E3BB /* de */, CE92ABFA28E97CAF00FE2EBC /* nl */, + B3BBF4432909F653004B2125 /* pt-BR */, ); name = Localizable.strings; sourceTree = ""; @@ -404,6 +406,7 @@ CECD6343235E54350060911F /* Base */, CECD6346235E54420060911F /* de */, CE92ABF928E97C5600FE2EBC /* nl */, + B3BBF4422909F64B004B2125 /* pt-BR */, ); name = pp.html; sourceTree = ""; diff --git a/VocabularyTrainer/Home Screen/HomeScreenViewController.swift b/VocabularyTrainer/Home Screen/HomeScreenViewController.swift index ef76550..3d33b81 100644 --- a/VocabularyTrainer/Home Screen/HomeScreenViewController.swift +++ b/VocabularyTrainer/Home Screen/HomeScreenViewController.swift @@ -465,6 +465,8 @@ class HomeScreenViewController: UIViewController, UITableViewDelegate, UITableVi ppUrl = URL(string: "https://mic.st/flippyLearn/pp_de.html") case "nl": ppUrl = URL(string: "https://mic.st/flippyLearn/pp_nl.html") + case "pt_BR": + ppUrl = URL(string: "https://mic.st/flippyLearn/pp_pt_br.html") default: ppUrl = URL(string: "https://mic.st/flippyLearn/pp_en.html") } diff --git a/VocabularyTrainer/Language Screens/LanguageScreenViewController.swift b/VocabularyTrainer/Language Screens/LanguageScreenViewController.swift index 2093aa2..2f079c2 100644 --- a/VocabularyTrainer/Language Screens/LanguageScreenViewController.swift +++ b/VocabularyTrainer/Language Screens/LanguageScreenViewController.swift @@ -623,6 +623,11 @@ class LanguageScreenViewController: UIViewController, UISearchBarDelegate, MFMai present(alert, animated: true, completion: nil) } + @IBAction func newWordButtonTapped(_ sender: Any) { + let viewController = AddNewWordViewController(selectedLanguage: selectedLanguage) + self.present(viewController, animated: true) + } + @objc func sortButtonTapped(_ sender: UIButton) { let chevronUpImage = UIImage(systemName: "chevron.up.square.fill", withConfiguration: symbolConfig) diff --git a/VocabularyTrainer/TrainingViewController.swift b/VocabularyTrainer/TrainingViewController.swift index 9678e99..5cae71d 100644 --- a/VocabularyTrainer/TrainingViewController.swift +++ b/VocabularyTrainer/TrainingViewController.swift @@ -33,8 +33,8 @@ class TrainingViewController: UIViewController { currentTrainingHeader.numberOfLines = 0; currentTrainingHeader.lineBreakMode = .byWordWrapping currentTrainingHeader.text = """ - Training: - \(selectedLanguage ?? "no language selected") + \(NSLocalizedString("Training:", comment: "Training:")) + \(selectedLanguage ?? NSLocalizedString("No language selected", comment: "No language selected")) """ styleButtons() @@ -160,7 +160,7 @@ class TrainingViewController: UIViewController { self.checkInputButton.isHidden = true self.takeALookButton.isHidden = true }) - showToast(message: "That's right! 🤠", yCoord: 400.0) + showToast(message: NSLocalizedString("That's right! 🤠", comment: "That's right! 🤠"), yCoord: 400.0) answerInput.text = solution nextButton.setTitle("Next word", for: .normal) } else { @@ -172,7 +172,7 @@ class TrainingViewController: UIViewController { UIView.animate(withDuration: 0.2, animations: { self.answerInput.backgroundColor = BackgroundColor.red }) - showToast(message: "That's wrong 😕", yCoord: 400.0) + showToast(message: NSLocalizedString("That's wrong 😕", comment: "That's wrong 😕"), yCoord: 400.0) } } } diff --git a/VocabularyTrainer/en.lproj/Localizable.strings b/VocabularyTrainer/en.lproj/Localizable.strings index bd54a9c..57c63e1 100644 --- a/VocabularyTrainer/en.lproj/Localizable.strings +++ b/VocabularyTrainer/en.lproj/Localizable.strings @@ -23,6 +23,7 @@ "new Word" = "new word"; "translation" = "translation"; "Training" = "📖 Training"; +"Training:" = "Training:"; "Delete Language" = "🗑 Delete Language"; "export" = "💾 export language"; "New word" = "New word"; @@ -63,3 +64,6 @@ "Please wait..." = "Please wait..."; "Edit word" = "✏️ Edit word"; "Your progress and probability configuration for this word will be saved" = "Your progress and probability configuration for this word will be saved"; +"That's wrong 😕" = "That's wrong 😕"; +"That's right! 🤠" = "That's right! 🤠"; +"Import" = "Import"; diff --git a/VocabularyTrainer/pt-BR.lproj/Localizable.strings b/VocabularyTrainer/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000..dd221c4 --- /dev/null +++ b/VocabularyTrainer/pt-BR.lproj/Localizable.strings @@ -0,0 +1,68 @@ +/* + File.strings + VocabularyTrainer + + Created by skrr on 29.05.19. + Copyright © 2019 mic. All rights reserved. +*/ + +"Your Languages" = "Seus idiomas"; +"Currently there are no languages" = "Atualmente não há idiomas.\n\nVocê pode adicionar um novo idioma no botão abaixo."; +"Currently there are no words" = "Atualmente não há palavras.\n\nVocê pode adicionar uma nova palavra no botão abaixo."; +/* +\n\nIf you have any language files uploaded to your iPhone via iTunes, hit the \"import all\" button.";*/ +"Add language" = "➕ Adicionar idioma"; +"Add new language" = "Adicionar novo idioma"; +"which language?" = "Idioma"; +"Add" = "➕ Adicionar"; +"< Back" = "↤ Voltar"; +"%d words" = "%d palavras"; +"%d word" = "%d palavra"; +"0 words" = "0 palavras"; +"My words" = "⚙️ Editar"; +"new Word" = "nova palavra"; +"translation" = "tradução"; +"Training" = "📖 Treinar"; +"Training:" = "Treinando:"; +"Delete Language" = "🗑 Excluir idioma"; +"export" = "💾 exportar idioma"; +"New word" = "Nova palavra"; +"Add new word" = "Adicionar nova palavra"; +"No words inside 🕵️‍♀️" = "Sem palavras adicionadas 🕵️‍♀️"; +"Delete %@" = "Deletar %@"; +"Deleting this language will delete all your saved words and your learning progress.\nDo you want to proceed?" = "Deletando esse idioma, você irá deletar todas as palavras salvas e o seu progresso de aprendizado.\nVocê gostaria de continuar?"; +"Cancel" = "Cancelar"; +"Delete" = "🗑 Deletar"; +"New word added" = "Nova palavra adicionada"; +"Change word`s probability" = "Alterar probabilidade da palavra aparecer"; +"Change word`s probability value. Higher value -> higher probability for word to appear.\nNew words start with 100." = "Alterar a probabilidade da palavra aparecer. Valores maiores significa que há maior probabilidade da palavra aparecer.\nNovas palavras começam com o valor 100."; +"Edit:" = "🛠 Editar:"; +"Export successful:" = "Exportado com sucesso:"; +"Exported the following languages:" = "Exportado os seguintes idiomas:"; +"You may copy your file to your machine via iTunes:\n iPhone->Filesharing->Flippy->drag %@.csv into Finder" = "Você pode copiar o arquivo de idiomas para o seu computador pelo iTunes.\nAcesse: iPhone->Compartilhamento de Arquivos->Flippy->arraste %@.csv para uma pasta da sua preferência"; +"You may copy your file to your machine via iTunes:\n iPhone->Filesharing->Flippy->drag csv-files into Finder" = "Você pode copiar o arquivo para o seu computador pelo iTunes.\nAcesse: iPhone->Compartilhamento de Arquivos->Flippy->arraste csv-files para o Finder"; +"⤵ import" = "⤋ importar"; +"↑ export" = "⇪ exportar"; +"answer" = "resposta"; +"Check" = "Confirmar"; +"Take a look" = "Espiar"; +"Skip word" = "Pular palavra"; +"search for words" = "buscar palavras"; +"Importing language files into the app will overwrite any languages in your app with the same name as the csv-file.\n Do you want to proceed?" = "Os idiomas existentes no seu aparelho caso possuam o mesmo nome que os arquivos csv-file a serem importados serão sobrescritos.\n Você gostaria de continuar?"; +"There were not found any language files for your app.\nFor a template of a language file you may create a new language with some vocabulary inside this app and export it." = "Não foi encontrado qualquer arquivo de idioma para o seu app.\nPara ter o modelo do arquivo de idioma, você terá que criar um novo idioma com algumas palavras adicionadas dentro do app e exportar."; +"No language files found" = "Nenhum arquivo de idioma foi encontrado"; +"👍 I was right" = "👍"; +"👎 I was wrong" = "👎"; +"Swipe left to edit word (edit its probability or delete it)" = "ℹ️ Arraste a palavra para a esquerda para editar.\nPalavras que estejam com uma barra vermelha maior, terá uma probabilidade maior de aparecer durante a prática."; +"ℹ️ Add new words with the button below" = "ℹ️ Adicione novas palavras pelo botão abaixo."; +"Importing language files" = "Importando arquivos de idiomas"; +"Close" = "Fechar"; +"About Flippy App" = "Sobre o Flippy"; +"No language selected" = "Nenhum idioma selecionado"; +"Please select a language to export first." = "Por favor, selecione um idioma primeiro para exportar."; +"Please wait..." = "Por favor, aguarde..."; +"Edit word" = "✏️ Editar palavra"; +"Your progress and probability configuration for this word will be saved" = "Seu progresso e configuração de probabilidade para essa palavra não será alterado com essa mudança"; +"That's wrong 😕" = "Errado 😕"; +"That's right! 🤠" = "Acertou! 🤠"; +"Import" = "Importar"; diff --git a/VocabularyTrainer/pt-BR.lproj/Main.strings b/VocabularyTrainer/pt-BR.lproj/Main.strings new file mode 100644 index 0000000..894bb30 --- /dev/null +++ b/VocabularyTrainer/pt-BR.lproj/Main.strings @@ -0,0 +1,84 @@ + +/* Class = "UIButton"; normalTitle = "Take a look"; ObjectID = "1g5-hc-GXA"; */ +"1g5-hc-GXA.normalTitle" = "Espiar"; + +/* Class = "UISearchBar"; placeholder = "search for words"; ObjectID = "4AL-Ff-pOI"; */ +"4AL-Ff-pOI.placeholder" = "buscar palavras"; + +/* Class = "UILabel"; text = "Language"; ObjectID = "4x2-GA-oeg"; */ +"4x2-GA-oeg.text" = "Idioma"; + +/* Class = "UITextField"; placeholder = "answer"; ObjectID = "53n-g1-uwW"; */ +"53n-g1-uwW.placeholder" = "resposta"; + +/* Class = "UILabel"; text = "Training:\nTurkish"; ObjectID = "5Cu-DE-YK3"; */ +"5Cu-DE-YK3.text" = "Praticando:\nTurco"; + +/* Class = "UILabel"; text = "köpek"; ObjectID = "5Gx-1I-CQE"; */ +"5Gx-1I-CQE.text" = "köpek"; + +/* Class = "UIButton"; normalTitle = "👍"; ObjectID = "87J-6T-hDZ"; */ +"87J-6T-hDZ.normalTitle" = "👍"; + +/* Class = "UIButton"; normalTitle = "⤴ export"; ObjectID = "8Cb-Nv-Z0p"; */ +"8Cb-Nv-Z0p.normalTitle" = "⤴ exportar"; + +/* Class = "UIButton"; normalTitle = "Training"; ObjectID = "8uJ-dW-rui"; */ +"8uJ-dW-rui.normalTitle" = "Praticar"; + +/* Class = "UIButton"; normalTitle = "New word"; ObjectID = "BUp-gp-Omw"; */ +"BUp-gp-Omw.normalTitle" = "Nova palavra"; + +/* Class = "UILabel"; text = "Hund"; ObjectID = "Il2-HT-ikf"; */ +"Il2-HT-ikf.text" = "Hund"; + +/* Class = "UILabel"; text = "Label"; ObjectID = "J69-hW-zYM"; */ +"J69-hW-zYM.text" = "Label"; + +/* Class = "UIButton"; normalTitle = "< Back"; ObjectID = "Jhf-6U-f7J"; */ +"Jhf-6U-f7J.normalTitle" = "< Voltar"; + +/* Class = "UILabel"; text = "Dutch"; ObjectID = "Kdj-qz-jtM"; */ +"Kdj-qz-jtM.text" = "Holandês"; + +/* Class = "UIButton"; normalTitle = "Add language"; ObjectID = "Nrq-QQ-ihD"; */ +"Nrq-QQ-ihD.normalTitle" = "Adicionar Idioma"; + +/* Class = "UIButton"; normalTitle = "Check"; ObjectID = "SJQ-jN-5Xm"; */ +"SJQ-jN-5Xm.normalTitle" = "Confirmar"; + +/* Class = "UIButton"; normalTitle = "About FlippyApp"; ObjectID = "WIf-kg-T6U"; */ +"WIf-kg-T6U.normalTitle" = "Sobre FlippyApp"; + +/* Class = "UIButton"; normalTitle = "⤵ import"; ObjectID = "Wfy-tB-0pH"; */ +"Wfy-tB-0pH.normalTitle" = "⤵ importar"; + +/* Class = "UILabel"; text = "dateAddedLabel"; ObjectID = "fnA-3F-RPz"; */ +"fnA-3F-RPz.text" = "dateAddedLabel"; + +/* Class = "UIButton"; normalTitle = "My words"; ObjectID = "iBg-bb-bgl"; */ +"iBg-bb-bgl.normalTitle" = "Minhas palavras"; + +/* Class = "UIButton"; normalTitle = "👎"; ObjectID = "lQT-3b-eN5"; */ +"lQT-3b-eN5.normalTitle" = "👎"; + +/* Class = "UILabel"; text = "köpek"; ObjectID = "o3T-rB-i7W"; */ +"o3T-rB-i7W.text" = "köpek"; + +/* Class = "UIButton"; normalTitle = "< Back"; ObjectID = "rDw-Te-IUC"; */ +"rDw-Te-IUC.normalTitle" = "< Voltar"; + +/* Class = "UILabel"; text = "Your languages"; ObjectID = "rNH-Y6-8Zv"; */ +"rNH-Y6-8Zv.text" = "Seus idiomas"; + +/* Class = "UIButton"; normalTitle = "Button"; ObjectID = "sIk-MR-VHX"; */ +"sIk-MR-VHX.normalTitle" = "Botão"; + +/* Class = "UILabel"; text = "124 words"; ObjectID = "tDl-JN-tww"; */ +"tDl-JN-tww.text" = "124 palavras"; + +/* Class = "UIButton"; normalTitle = "Skip word"; ObjectID = "vAt-0V-rIb"; */ +"vAt-0V-rIb.normalTitle" = "Pular palavra"; + +/* Class = "UIButton"; normalTitle = "Delete Language"; ObjectID = "zUX-sC-O0i"; */ +"zUX-sC-O0i.normalTitle" = "Excluir idioma"; diff --git a/VocabularyTrainer/pt-BR.lproj/pp.html b/VocabularyTrainer/pt-BR.lproj/pp.html new file mode 100644 index 0000000..3b4fdbf --- /dev/null +++ b/VocabularyTrainer/pt-BR.lproj/pp.html @@ -0,0 +1,137 @@ + + + + + + + + + +

Política de Privacidade

+ + +

Data efetiva: 07 de Janeiro de 2020

+ + +

Michael Steudter (""nós" ou "nosso"") opera a aplicação móvel FlippyLearn (doravante denominado como "Serviço").

+ +

Esta página informa-o das nossas políticas relativas à recolha, utilização, e divulgação de dados pessoais quando utiliza o nosso Serviço e as escolhas que tem associadas a esses dados. A Política de Privacidade para FlippyLearn foi criada com a ajuda de TermsFeed.

+ +

Utilizamos os seus dados para fornecer e melhorar o Serviço. Ao utilizar o Serviço, concorda com a recolha e utilização de informações de acordo com esta política. Salvo definição em contrário na presente Política de Privacidade, os termos utilizados na presente Política de Privacidade têm os mesmos significados que nos nossos Termos e Condições.

+ +

Definições

+
    +
  • +

    Serviço

    +

    Serviço é o aplicativo móvel FlippyLearn operado por Michael Steudter

    +
  • +
  • +

    Dados Pessoais

    +

    Dados Pessoais significam dados sobre um indivíduo vivo que pode ser identificado a partir desses dados (ou dessas e outras informações em nossa posse ou que possam vir a estar em nossa posse).

    +
  • +
  • +

    Dados de Utilização

    +

    Os Dados de Utilização são dados recolhidos automaticamente ou gerados pela utilização do Serviço ou da própria infra-estrutura do Serviço (por exemplo, a duração de uma visita à página).

    +
  • +
  • +

    Cookies

    +

    Os cookies são arquivos pequenos armazenados no seu dispositivo (computador ou dispositivo móvel).

    +
  • +
+ +

Coleta e Uso de Informações

+

Coletamos diversos tipos diferentes de informação para vários fins a fim de fornecer e melhorar o nosso Serviço ao cliente.

+ +

Tipos de Dados Coletados

+ +

Dados Pessoais

+

Ao utilizar o nosso Serviço, podemos pedir-lhe que nos forneça certas informações pessoalmente identificáveis que podem ser utilizadas para o contactar ou identificar ("Dados Pessoais"). As informações pessoalmente identificáveis podem incluir, mas não estão limitadas a:

+ +
    +
  • Cookies e Dados de Utilização
  • +
+ +

Dados de Utilização

+ +

Ao acessar o Serviço por ou através de um dispositivo móvel, podemos coletar certas informações automaticamente, incluindo, mas não se limitando a, o tipo de dispositivo móvel que utiliza, o seu ID único do dispositivo móvel, o endereço IP do seu dispositivo móvel, o seu sistema operativo móvel, o tipo de navegador de Internet móvel que utiliza, identificadores únicos do dispositivo e outros dados de diagnóstico ("Dados de Utilização").

+ +

Rastreio & Dados de Cookies

+

Utilizamos cookies e tecnologias de rastreio semelhantes para rastrear a actividade no nosso Serviço e possuímos certas informações.

+

Os cookies são arquivos com uma pequena quantidade de dados que podem incluir um identificador anônimo único. Os cookies são enviados para o seu navegador a partir de um website e armazenados no seu dispositivo. Outras tecnologias de rastreio também são utilizadas, tais como beacons, tags e scripts para coletar e rastrear informações e para melhorar e analisar o nosso Serviço.

+

Pode instruir o seu navegador a recusar todos os cookies ou a indicar quando um cookie está a ser enviado. No entanto, se não aceitar cookies, poderá não ser possível utilizar algumas partes do nosso Serviço.

+

Exemplos de Cookies que utilizamos:

+
    +
  • Cookies de Sessão. Utilizamos os Cookies de Sessão para operar o nosso Serviço.
  • +
  • Cookies de Preferência. Utilizamos Cookies de Preferência para lembrar as suas preferências e várias configurações. +
  • +
  • Cookies de Segurança. Utilizamos Cookies de Segurança para fins de segurança.
  • +
+ +

Utilização de Dados

+ +

FlippyLearn utiliza os dados recolhidos para vários fins:

+
    +
  • Prestar e manter o Serviço
  • +
  • Para o notificar de alterações ao nosso Serviço
  • +
  • Para lhe permitir participar em funcionalidades interativas do nosso Serviço quando assim o desejar
  • +
  • Para prestar assistência e suporte ao cliente
  • +
  • Fornecer análises ou informações valiosas para que possamos melhorar o Serviço
  • +
  • Para monitorizar a utilização do Serviço.
  • +
  • Detectar, prevenir e abordar questões técnicas
  • +
+ +

Transferência de Dados

+

As suas informações, incluindo Dados Pessoais, podem ser transferidas para - e mantidas em - computadores localizados fora do seu estado, província, país ou outra jurisdição governamental onde as leis de protecção de dados possam ser diferentes das da sua jurisdição.

+

Se estiver localizado fora da Alemanha e optar por nos fornecer informações, note que transferimos os dados, incluindo Dados Pessoais, para a Alemanha e processamo-los lá.

+

O seu consentimento para esta Política de Privacidade seguida pelo envio de tais informações representa o seu consentimento para essa transferência.

+

A FlippyLearn tomará todas as medidas razoavelmente necessárias para assegurar que os seus dados sejam tratados de forma segura e em conformidade com a presente Política de Privacidade e nenhuma transferência dos seus Dados Pessoais terá lugar para uma organização ou um país, a menos que existam controles adequados, incluindo a segurança dos seus dados e outras informações pessoais.

+ +

Divulgação de Dados

+ +

Requisitos Legais

+

FlippyLearn pode revelar os seus Dados Pessoais na crença de boa fé de que tal ação é necessária:

+
    +
  • Cumprir uma obrigação legal
  • +
  • Para proteger e defender os direitos ou propriedade da FlippyLearn
  • +
  • Para prevenir ou investigar possíveis infracções relacionadas com o Serviço
  • +
  • Para proteger a segurança pessoal dos utilizadores do Serviço ou do público
  • +
  • Para proteger contra a responsabilidade legal
  • +
+ +

Como cidadão europeu, sob GDPR, tem certos direitos individuais. Pode saber mais sobre estes guias no Guia do GDPR.

+ +

Segurança dos Dados

+

A segurança dos seus dados é importante para nós, mas lembre-se que nenhum método de transmissão através da Internet ou método de armazenamento eletrônico é 100% seguro. Embora nos esforcemos por utilizar meios comercialmente aceitáveis para proteger os seus Dados Pessoais, não podemos garantir a sua segurança absoluta.

+ +

Prestadores de Serviços

+

Podemos empregar empresas e indivíduos terceiros para facilitar o nosso Serviço ("Prestadores de Serviços"), para fornecer o Serviço em nosso nome, para executar serviços relacionados com o Serviço ou para nos ajudar a analisar a forma como o nosso Serviço é utilizado.

+

Estes terceiros têm acesso aos seus Dados Pessoais apenas para realizar estas tarefas em nosso nome e são obrigados a não os divulgar ou utilizar para qualquer outro fim.

+ + + + +

Links para outros sites

+

O nosso Serviço pode conter links para outros sites que não são operados por nós. Se clicar num link de terceiros, será direcionado para o site desse terceiro. Aconselhamo-lo vivamente a rever a Política de Privacidade de cada site que visitar.

+

Não temos controle sobre e não assumimos qualquer responsabilidade pelo conteúdo, políticas ou práticas de privacidade de quaisquer sites ou serviços de terceiros.

+ + +

Privacidade das Crianças

+

O nosso Serviço não se dirige a menores de 18 anos ("Crianças").

+

Não recolhemos intencionalmente informações pessoalmente identificáveis de ninguém com menos de 18 anos de idade. Se for pai ou tutor e estiver ciente de que o seu Filho nos forneceu Dados Pessoais, por favor contate-nos. Se tivermos conhecimento de que recolhemos dados pessoais de crianças sem verificação do consentimento dos pais, tomamos medidas para remover essa informação dos nossos servidores.

+ + +

Alterações a esta Política de Privacidade

+

Podemos atualizar a nossa Política de Privacidade de tempos a tempos. Notificá-lo-emos de quaisquer alterações, colocando a nova Política de Privacidade nesta página.

+

Ser-lhe-emos informados por e-mail e/ou um aviso em destaque no nosso Serviço, antes da mudança se tornar efetiva e atualizar a "data efetiva" no topo desta Política de Privacidade.

+

É aconselhado rever periodicamente esta Política de Privacidade para quaisquer alterações. As alterações a esta Política de Privacidade são efetivas quando são publicadas nesta página.

+ + +

Contate-nos

+

Se você tiver alguma dúvida sobre esta Política de Privacidade, entre em contato conosco:

+
    +
  • Por email: contact@mic.st
  • + +
+ + +