Desenvolvedores

Desenvolvedores

Índice

Introdução

Esta página contém todas as informações necessárias para que os desenvolvedores contribuam para a Plataforma Hotmaps ou entendam como ela está funcionando.

To Top

Integração de conjunto de dados

A integração de novos conjuntos de dados públicos é tratada da seguinte maneira:

  1. os conjuntos de dados devem ser enviados para um repositório git ( adicione seus conjuntos de dados no GitLab )
  2. todas as noites um script integra os conjuntos de dados novos / atualizados à plataforma DEV
  3. se tudo funcionou bem, o conjunto de dados agora está disponível na plataforma DEV e os desenvolvedores podem integrá-lo em seu código
  4. Após a conclusão da codificação, os novos recursos são adicionados à plataforma de produção por meio de uma nova versão

integração de dados

Se um conjunto de dados falhar durante a integração, um problema será criado no Taiga (plataforma de gerenciamento de projetos). A questão mostra o erro levantado e o desenvolvedor deve corrigi-lo e enviar novamente seu trabalho ao Git para que o script possa tentar integrá-lo novamente na noite seguinte.

O código-fonte do script de integração está disponível neste link: Integração de dados

To Top

Adicione seus conjuntos de dados no GitLab

Para adicionar conjuntos de dados à lista de conjuntos públicos, eles devem ser enviados para um novo repositório Git no GitLab. Aqui está a organização GitLab onde os conjuntos de dados devem ser enviados: Conjuntos de dados no GitLab .

Uma vez por dia, os repositórios são verificados quanto a novas confirmações e integrados, se houver. O processo de integração verifica se os dados estão em conformidade com a especificação ou não.

Aqui está a especificação: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Lista de repositórios principais

O código do aplicativo está localizado no GitHub na organização Hotmaps . Esta organização possui vários repositórios

  • Hotmaps-toolbox-client contém o frontend do nosso aplicativo. É um projeto Angular (JavaScript)
  • Hotmaps-toolbox-service contém a API para nosso aplicativo. É baseado em Flask (Python)
  • Hotmaps-wiki é o Wiki que você está lendo atualmente
  • módulo de cálculo base é o modelo básico que você pode usar para criar seus próprios módulos de cálculo para Hotmaps
  • uma lista de módulos de cálculos

To Top

Como contribuir com código

Se você deseja adicionar algum código aos Hotmaps, você tem duas possibilidades: se deseja atualizar a interface ou o back-end diretamente, é necessário modificar o cliente ou o repositório de serviços da caixa de ferramentas. Se você deseja adicionar seu próprio módulo de cálculo, é possível criar seu próprio repositório seguindo o leia-me do repositório base_calculation_module

Se você deseja executar algum trabalho no repositório Git, não trabalhe diretamente com o ramo principal. Crie uma nova ramificação a partir da ramificação de desenvolvimento, faça seu trabalho nesta ramificação e, quando seu recurso for testado, você poderá mesclar seu trabalho com a ramificação de desenvolvimento, como mostra o gráfico a seguir.

git_workflow

Para enviar algo para algum repositório de Hotmaps, você precisa ser membro da equipe de Hotmaps. Se não estiver, ainda poderá executar um fork da nossa ferramenta para desenvolver sua própria ferramenta.

Você pode encontrar mais informações sobre como trabalhar nestes documentos:

To Top

Descrição da infraestrutura de TI

ReverseProxy_architecture_latest

Todos os serviços e componentes são usados através de seu próprio contêiner Docker. Todos esses contêineres são definidos em um único arquivo de composição do docker. A imagem acima representa a arquitetura de TI dos Hotmaps.

Algumas organizações parceiras limitaram a comunicação apenas à porta 80. Para evitar os problemas causados por essa limitação, foi criada a criação de um proxy reverso. Esse proxy reverso oferece um único ponto de entrada e depois distribui a solicitação enviada pelo cliente ao serviço em questão. O proxy reverso é composto por três componentes:

  1. Servidor proxy reverso: serve como um ponto de entrada exclusivo e distribui solicitações para os serviços certos.
  2. Proxy-gen: é um serviço que mapeia automaticamente todos os serviços no proxy reverso. Portanto, não é necessário adicionar manualmente um novo serviço à configuração do proxy
  3. lets-encrypt: é um serviço que permite o uso do protocolo SSL. É necessário para ativar o protocolo https. Os certificados SSL são assinados por um endereço de email configurado neste serviço.

Existem três redes:

  • hotmaps_nginx permite que o proxy reverso se comunique com a API, o front-end e o servidor geográfico. Ele permite principalmente distribuir uma solicitação para o serviço correto entre os três.
  • hotmaps_backend permite a comunicação entre todos os componentes do backend: api, frontend, geoserver e o banco de dados PostgreSQL.
  • hotmaps_cm-net permite a comunicação entre cada módulo de cálculo e a API.

Cada módulo de cálculo possui seu próprio contêiner Docker.

Executar com o Docker

HotMaps usa Docker software e Docker-Compose ferramenta para gerenciar recipientes. Um arquivo docker-compose.yml contém toda a configuração da arquitetura do Docker (configuração de contêineres, redes, links, ...). Isso permite que os contêineres sejam executados com um comando simples:

 docker-compose up 

Há mais sobre docker-compose no site da Web do Docker: Redigir referência de linha de comando e Redigir referência de arquivo .

Existe apenas um contêiner que é executado separadamente dos outros: é o banco de dados, porque precisa ficar sempre ativo. É por isso que não está no arquivo de configuração do docker-compose.

Infraestrutura do servidor

A infraestrutura

No momento, o servidor está hospedado no HES-SO na Suíça. Existem 2 máquinas disponíveis: uma para desenvolvimento (desenvolvimento e teste) e outra para produção (a caixa de ferramentas real, disponível em www.hotmaps.eu ).

Ambas as máquinas têm a mesma especificação:

  • Processador: Intel Xeon E5-2680 v4 (8) @ 2.4GHz)
  • RAM: 16GB
  • HDD: 500GB
  • SO: Ubutnu 16.04 LTS

atuação

Frequentemente, executamos testes de desempenho no servidor de desenvolvimento para garantir uma certa quantidade de usuários simultâneos.

Como exemplo, abaixo estão os resultados da primeira versão beta versus os testes de versão futura. A nova versão inclui algumas melhorias de desempenho.

Este exemplo mostra os testes de desempenho de usuários simultâneos usando a mesma função: "curva de duração para seleção de hectares". A linha em negrito mostra o limite em que o servidor começa a gerar erros. A seleção de hectares é um bom exemplo, pois mostra as consultas que requerem mais recursos.

Versão beta de março de 2019

| Nb de usuários simulados | Tempo médio | Mediana Tempo máximo | Tempo mínimo | Percentagem de erros | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 2936 2936 2936 2936 0 | 20 9329 9503 11778 6901 0 | 50 22922 22713 33401 8661 0 | 100 33302 32875 58257 4929 16 | 200 na | na | na | na | na | | 300 na | na | na | na | na |

Lançamento futuro no DEV (março de 2019)

| Nb de usuários simulados | Tempo médio | Mediana Tempo máximo | Tempo mínimo | Percentagem de erros | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1802 1802 1802 1802 0 | 20 5289 2677 6873 2149 0 | 50 10775 11274 17081 2577 0 | 100 19807 20280 35142 3156 0 | 200 37302 37575 69930 3381 0 | 300 49091 57536 83578 2447 26

To Top

Como definir indicadores

Definição de Indicador

To Top

Referências

To Top

Como citar

To Top

Autores e revisores

Autores:

  • Daniel Hunacek
  • Lucien Zuber
  • Matthieu Dayer

Revisores:

To Top

Reconhecimento

Gostaríamos de expressar nossa mais profunda gratidão ao Projeto Horizonte 2020 Hotmaps (Contrato de Doação número 723677), que forneceu o financiamento para a realização da presente investigação

To Top

This page was automatically translated. View in another language:

English (original) Bulgarian* Croatian* Czech* Danish* Dutch* Estonian* Finnish* French* German* Greek* Hungarian* Irish* Italian* Latvian* Lithuanian* Maltese* Polish* Romanian* Slovak* Slovenian* Spanish* Swedish*

* machine translated1> Desenvolvedores

Desenvolvedores

Índice

Introdução

Esta página contém todas as informações necessárias para que os desenvolvedores contribuam para a Plataforma Hotmaps ou entendam como ela está funcionando.

To Top

Integração de conjunto de dados

A integração de novos conjuntos de dados públicos é tratada da seguinte maneira:

  1. os conjuntos de dados devem ser enviados para um repositório git ( adicione seus conjuntos de dados no GitLab )
  2. todas as noites um script integra os conjuntos de dados novos / atualizados à plataforma DEV
  3. se tudo funcionou bem, o conjunto de dados agora está disponível na plataforma DEV e os desenvolvedores podem integrá-lo em seu código
  4. Após a conclusão da codificação, os novos recursos são adicionados à plataforma de produção por meio de uma nova versão

integração de dados

Se um conjunto de dados falhar durante a integração, um problema será criado no Taiga (plataforma de gerenciamento de projetos). A questão mostra o erro levantado e o desenvolvedor deve corrigi-lo e enviar novamente seu trabalho ao Git para que o script possa tentar integrá-lo novamente na noite seguinte.

O código-fonte do script de integração está disponível neste link: Integração de dados

To Top

Adicione seus conjuntos de dados no GitLab

Para adicionar conjuntos de dados à lista de conjuntos públicos, eles devem ser enviados para um novo repositório Git no GitLab. Aqui está a organização GitLab onde os conjuntos de dados devem ser enviados: Conjuntos de dados no GitLab .

Uma vez por dia, os repositórios são verificados quanto a novas confirmações e integrados, se houver. O processo de integração verifica se os dados estão em conformidade com a especificação ou não.

Aqui está a especificação: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Lista de repositórios principais

O código do aplicativo está localizado no GitHub na organização Hotmaps . Esta organização possui vários repositórios

  • Hotmaps-toolbox-client contém o frontend do nosso aplicativo. É um projeto Angular (JavaScript)
  • Hotmaps-toolbox-service contém a API para nosso aplicativo. É baseado em Flask (Python)
  • Hotmaps-wiki é o Wiki que você está lendo atualmente
  • módulo de cálculo base é o modelo básico que você pode usar para criar seus próprios módulos de cálculo para Hotmaps
  • uma lista de módulos de cálculos

To Top

Como contribuir com código

Se você deseja adicionar algum código aos Hotmaps, você tem duas possibilidades: se deseja atualizar a interface ou o back-end diretamente, é necessário modificar o cliente ou o repositório de serviços da caixa de ferramentas. Se você deseja adicionar seu próprio módulo de cálculo, é possível criar seu próprio repositório seguindo o leia-me do repositório base_calculation_module

Se você deseja executar algum trabalho no repositório Git, não trabalhe diretamente com o ramo principal. Crie uma nova ramificação a partir da ramificação de desenvolvimento, faça seu trabalho nesta ramificação e, quando seu recurso for testado, você poderá mesclar seu trabalho com a ramificação de desenvolvimento, como mostra o gráfico a seguir.

git_workflow

Para enviar algo para algum repositório de Hotmaps, você precisa ser membro da equipe de Hotmaps. Se não estiver, ainda poderá executar um fork da nossa ferramenta para desenvolver sua própria ferramenta.

Você pode encontrar mais informações sobre como trabalhar nestes documentos:

To Top

Descrição da infraestrutura de TI

ReverseProxy_architecture_latest

Todos os serviços e componentes são usados através de seu próprio contêiner Docker. Todos esses contêineres são definidos em um único arquivo de composição do docker. A imagem acima representa a arquitetura de TI dos Hotmaps.

Algumas organizações parceiras limitaram a comunicação apenas à porta 80. Para evitar os problemas causados por essa limitação, foi criada a criação de um proxy reverso. Esse proxy reverso oferece um único ponto de entrada e depois distribui a solicitação enviada pelo cliente ao serviço em questão. O proxy reverso é composto por três componentes:

  1. Servidor proxy reverso: serve como um ponto de entrada exclusivo e distribui solicitações para os serviços certos.
  2. Proxy-gen: é um serviço que mapeia automaticamente todos os serviços no proxy reverso. Portanto, não é necessário adicionar manualmente um novo serviço à configuração do proxy
  3. lets-encrypt: é um serviço que permite o uso do protocolo SSL. É necessário para ativar o protocolo https. Os certificados SSL são assinados por um endereço de email configurado neste serviço.

Existem três redes:

  • hotmaps_nginx permite que o proxy reverso se comunique com a API, o front-end e o servidor geográfico. Ele permite principalmente distribuir uma solicitação para o serviço correto entre os três.
  • hotmaps_backend permite a comunicação entre todos os componentes do backend: api, frontend, geoserver e o banco de dados PostgreSQL.
  • hotmaps_cm-net permite a comunicação entre cada módulo de cálculo e a API.

Cada módulo de cálculo possui seu próprio contêiner Docker.

Executar com o Docker

HotMaps usa Docker software e Docker-Compose ferramenta para gerenciar recipientes. Um arquivo docker-compose.yml contém toda a configuração da arquitetura do Docker (configuração de contêineres, redes, links, ...). Isso permite que os contêineres sejam executados com um comando simples:

 docker-compose up 

Há mais sobre docker-compose no site da Web do Docker: Redigir referência de linha de comando e Redigir referência de arquivo .

Existe apenas um contêiner que é executado separadamente dos outros: é o banco de dados, porque precisa ficar sempre ativo. É por isso que não está no arquivo de configuração do docker-compose.

Infraestrutura do servidor

A infraestrutura

No momento, o servidor está hospedado no HES-SO na Suíça. Existem 2 máquinas disponíveis: uma para desenvolvimento (desenvolvimento e teste) e outra para produção (a caixa de ferramentas real, disponível em www.hotmaps.eu ).

Ambas as máquinas têm a mesma especificação:

  • Processador: Intel Xeon E5-2680 v4 (8) @ 2.4GHz)
  • RAM: 16GB
  • HDD: 500GB
  • SO: Ubutnu 16.04 LTS

atuação

Frequentemente, executamos testes de desempenho no servidor de desenvolvimento para garantir uma certa quantidade de usuários simultâneos.

Como exemplo, abaixo estão os resultados da primeira versão beta versus os testes de versão futura. A nova versão inclui algumas melhorias de desempenho.

Este exemplo mostra os testes de desempenho de usuários simultâneos usando a mesma função: "curva de duração para seleção de hectares". A linha em negrito mostra o limite em que o servidor começa a gerar erros. A seleção de hectares é um bom exemplo, pois mostra as consultas que requerem mais recursos.

Versão beta de março de 2019

| Nb de usuários simulados | Tempo médio | Mediana Tempo máximo | Tempo mínimo | Percentagem de erros | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 2936 2936 2936 2936 0 | 20 9329 9503 11778 6901 0 | 50 22922 22713 33401 8661 0 | 100 33302 32875 58257 4929 16 | 200 na | na | na | na | na | | 300 na | na | na | na | na |

Lançamento futuro no DEV (março de 2019)

| Nb de usuários simulados | Tempo médio | Mediana Tempo máximo | Tempo mínimo | Percentagem de erros | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1802 1802 1802 1802 0 | 20 5289 2677 6873 2149 0 | 50 10775 11274 17081 2577 0 | 100 19807 20280 35142 3156 0 | 200 37302 37575 69930 3381 0 | 300 49091 57536 83578 2447 26

To Top

Como definir indicadores

Definição de Indicador

To Top

Referências

To Top

Como citar

To Top

Autores e revisores

Autores:

  • Daniel Hunacek
  • Lucien Zuber
  • Matthieu Dayer

Revisores:

To Top

Reconhecimento

Gostaríamos de expressar nossa mais profunda gratidão ao Projeto Horizonte 2020 Hotmaps (Contrato de Doação número 723677), que forneceu o financiamento para a realização da presente investigação

To Top

This page was automatically translated. View in another language:

English (original) Bulgarian* Croatian* Czech* Danish* Dutch* Estonian* Finnish* French* German* Greek* Hungarian* Irish* Italian* Latvian* Lithuanian* Maltese* Polish* Romanian* Slovak* Slovenian* Spanish* Swedish*

* machine translated> Desenvolvedores

Desenvolvedores

Índice

Introdução

Esta página contém todas as informações necessárias para que os desenvolvedores contribuam para a Plataforma Hotmaps ou entendam como ela está funcionando.

To Top

Integração de conjunto de dados

A integração de novos conjuntos de dados públicos é tratada da seguinte maneira:

  1. os conjuntos de dados devem ser enviados para um repositório git ( adicione seus conjuntos de dados no GitLab )
  2. todas as noites um script integra os conjuntos de dados novos / atualizados à plataforma DEV
  3. se tudo funcionou bem, o conjunto de dados agora está disponível na plataforma DEV e os desenvolvedores podem integrá-lo em seu código
  4. Após a conclusão da codificação, os novos recursos são adicionados à plataforma de produção por meio de uma nova versão

integração de dados

Se um conjunto de dados falhar durante a integração, um problema será criado no Taiga (plataforma de gerenciamento de projetos). A questão mostra o erro levantado e o desenvolvedor deve corrigi-lo e enviar novamente seu trabalho ao Git para que o script possa tentar integrá-lo novamente na noite seguinte.

O código-fonte do script de integração está disponível neste link: Integração de dados

To Top

Adicione seus conjuntos de dados no GitLab

Para adicionar conjuntos de dados à lista de conjuntos públicos, eles devem ser enviados para um novo repositório Git no GitLab. Aqui está a organização GitLab onde os conjuntos de dados devem ser enviados: Conjuntos de dados no GitLab .

Uma vez por dia, os repositórios são verificados quanto a novas confirmações e integrados, se houver. O processo de integração verifica se os dados estão em conformidade com a especificação ou não.

Aqui está a especificação: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Lista de repositórios principais

O código do aplicativo está localizado no GitHub na organização Hotmaps . Esta organização possui vários repositórios

  • Hotmaps-toolbox-client contém o frontend do nosso aplicativo. É um projeto Angular (JavaScript)
  • Hotmaps-toolbox-service contém a API para nosso aplicativo. É baseado em Flask (Python)
  • Hotmaps-wiki é o Wiki que você está lendo atualmente
  • módulo de cálculo base é o modelo básico que você pode usar para criar seus próprios módulos de cálculo para Hotmaps
  • uma lista de módulos de cálculos

To Top

Como contribuir com código

Se você deseja adicionar algum código aos Hotmaps, você tem duas possibilidades: se deseja atualizar a interface ou o back-end diretamente, é necessário modificar o cliente ou o repositório de serviços da caixa de ferramentas. Se você deseja adicionar seu próprio módulo de cálculo, é possível criar seu próprio repositório seguindo o leia-me do repositório base_calculation_module

Se você deseja executar algum trabalho no repositório Git, não trabalhe diretamente com o ramo principal. Crie uma nova ramificação a partir da ramificação de desenvolvimento, faça seu trabalho nesta ramificação e, quando seu recurso for testado, você poderá mesclar seu trabalho com a ramificação de desenvolvimento, como mostra o gráfico a seguir.

git_workflow

Para enviar algo para algum repositório de Hotmaps, você precisa ser membro da equipe de Hotmaps. Se não estiver, ainda poderá executar um fork da nossa ferramenta para desenvolver sua própria ferramenta.

Você pode encontrar mais informações sobre como trabalhar nestes documentos:

To Top

Descrição da infraestrutura de TI

ReverseProxy_architecture_latest

Todos os serviços e componentes são usados através de seu próprio contêiner Docker. Todos esses contêineres são definidos em um único arquivo de composição do docker. A imagem acima representa a arquitetura de TI dos Hotmaps.

Algumas organizações parceiras limitaram a comunicação apenas à porta 80. Para evitar os problemas causados por essa limitação, foi criada a criação de um proxy reverso. Esse proxy reverso oferece um único ponto de entrada e depois distribui a solicitação enviada pelo cliente ao serviço em questão. O proxy reverso é composto por três componentes:

  1. Servidor proxy reverso: serve como um ponto de entrada exclusivo e distribui solicitações para os serviços certos.
  2. Proxy-gen: é um serviço que mapeia automaticamente todos os serviços no proxy reverso. Portanto, não é necessário adicionar manualmente um novo serviço à configuração do proxy
  3. lets-encrypt: é um serviço que permite o uso do protocolo SSL. É necessário para ativar o protocolo https. Os certificados SSL são assinados por um endereço de email configurado neste serviço.

Existem três redes:

  • hotmaps_nginx permite que o proxy reverso se comunique com a API, o front-end e o servidor geográfico. Ele permite principalmente distribuir uma solicitação para o serviço correto entre os três.
  • hotmaps_backend permite a comunicação entre todos os componentes do backend: api, frontend, geoserver e o banco de dados PostgreSQL.
  • hotmaps_cm-net permite a comunicação entre cada módulo de cálculo e a API.

Cada módulo de cálculo possui seu próprio contêiner Docker.

Executar com o Docker

HotMaps usa Docker software e Docker-Compose ferramenta para gerenciar recipientes. Um arquivo docker-compose.yml contém toda a configuração da arquitetura do Docker (configuração de contêineres, redes, links, ...). Isso permite que os contêineres sejam executados com um comando simples:

 docker-compose up 

Há mais sobre docker-compose no site da Web do Docker: Redigir referência de linha de comando e Redigir referência de arquivo .

Existe apenas um contêiner que é executado separadamente dos outros: é o banco de dados, porque precisa ficar sempre ativo. É por isso que não está no arquivo de configuração do docker-compose.

Infraestrutura do servidor

A infraestrutura

No momento, o servidor está hospedado no HES-SO na Suíça. Existem 2 máquinas disponíveis: uma para desenvolvimento (desenvolvimento e teste) e outra para produção (a caixa de ferramentas real, disponível em www.hotmaps.eu ).

Ambas as máquinas têm a mesma especificação:

  • Processador: Intel Xeon E5-2680 v4 (8) @ 2.4GHz)
  • RAM: 16GB
  • HDD: 500GB
  • SO: Ubutnu 16.04 LTS

atuação

Frequentemente, executamos testes de desempenho no servidor de desenvolvimento para garantir uma certa quantidade de usuários simultâneos.

Como exemplo, abaixo estão os resultados da primeira versão beta versus os testes de versão futura. A nova versão inclui algumas melhorias de desempenho.

Este exemplo mostra os testes de desempenho de usuários simultâneos usando a mesma função: "curva de duração para seleção de hectares". A linha em negrito mostra o limite em que o servidor começa a gerar erros. A seleção de hectares é um bom exemplo, pois mostra as consultas que requerem mais recursos.

Versão beta de março de 2019

| Nb de usuários simulados | Tempo médio | Mediana Tempo máximo | Tempo mínimo | Percentagem de erros | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 2936 2936 2936 2936 0 | 20 9329 9503 11778 6901 0 | 50 22922 22713 33401 8661 0 | 100 33302 32875 58257 4929 16 | 200 na | na | na | na | na | | 300 na | na | na | na | na |

Lançamento futuro no DEV (março de 2019)

| Nb de usuários simulados | Tempo médio | Mediana Tempo máximo | Tempo mínimo | Percentagem de erros | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1802 1802 1802 1802 0 | 20 5289 2677 6873 2149 0 | 50 10775 11274 17081 2577 0 | 100 19807 20280 35142 3156 0 | 200 37302 37575 69930 3381 0 | 300 49091 57536 83578 2447 26

To Top

Como definir indicadores

Definição de Indicador

To Top

Referências

To Top

Como citar

To Top

Autores e revisores

Autores:

  • Daniel Hunacek
  • Lucien Zuber
  • Matthieu Dayer

Revisores:

To Top

Reconhecimento

Gostaríamos de expressar nossa mais profunda gratidão ao Projeto Horizonte 2020 Hotmaps (Contrato de Doação número 723677), que forneceu o financiamento para a realização da presente investigação

To Top

This page was automatically translated. View in another language:

English (original) Bulgarian* Croatian* Czech* Danish* Dutch* Estonian* Finnish* French* German* Greek* Hungarian* Irish* Italian* Latvian* Lithuanian* Maltese* Polish* Romanian* Slovak* Slovenian* Spanish* Swedish*

* machine translated