diff --git a/README.md b/README.md
index 7d060fe7..8242392d 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ create your own custom skinned version of the Biocache webapp, then this is the
## Getting started
First download and install [Grails](http://www.grails.org/download) (Note: version **2.3.x** is currently required but check the `application.properties` file
-for the specific version). Fork this project to your local machine.
+for the specific version). Fork this project to your local machine. If you change the name of the projet, do not forget to change it on application.properties file
Then try running the app with the command line:
@@ -17,8 +17,28 @@ Then try running the app with the command line:
## Skinning
-To do
+0. Change your working directory to the place where the generic layout is
+
+ cd generic-hub/grails-app/views/layouts/generic.gsp grails-app/views/layouts/
+
+1. Make a copy of the file grails-app/views/layouts/generic.gsp
+
+ cp generic.gsp generic-pt.gsp
+
+2. Edit the newly created file to customize your skin
+
+ Add new resources (images, etc) to the folder web-app/images
+
+3. To have multilingual support:
+i) add "compile ":lang-selector:0.3"" to the plugins section of BuildConfig.groovy;
+ii) add message_pt_PT.properties file to /grails-app/i18n folder.
+
+3. Change the file generic-hub/grails-app/conf/Config.groovy to set the new skin as default
+
+skin.layout = 'generic-pt'
## Configuration
-To do
+To set a new biocache service, add the following property to the Config.groovy file
+
+biocache.baseUrl="http://ala-demo.org/biocache-service"
diff --git a/application.properties b/application.properties
index c7c041ca..679bbaf3 100644
--- a/application.properties
+++ b/application.properties
@@ -3,4 +3,4 @@
app.grails.version=2.3.8
app.name=generic-hub
app.servlet.version=2.5
-app.version=1.2.5-SNAPSHOT
+app.version=1.2.5-SNAPSHOT
\ No newline at end of file
diff --git a/grails-app/conf/ApplicationResources.groovy b/grails-app/conf/ApplicationResources.groovy
index 8cf2ac68..4d372a5f 100644
--- a/grails-app/conf/ApplicationResources.groovy
+++ b/grails-app/conf/ApplicationResources.groovy
@@ -10,4 +10,8 @@ modules = {
resource url: [dir:'css', file:'generic.css']
}
+ pt {
+ resource url: [dir:'css', file:'generic-pt.css']
+ }
+
}
\ No newline at end of file
diff --git a/grails-app/conf/BuildConfig.groovy b/grails-app/conf/BuildConfig.groovy
index b1c1a96b..481ad258 100644
--- a/grails-app/conf/BuildConfig.groovy
+++ b/grails-app/conf/BuildConfig.groovy
@@ -50,8 +50,9 @@ grails.project.dependency.resolution = {
build ":tomcat:7.0.54"
compile ':cache:1.1.1'
compile ":cache-headers:1.1.6"
+ compile ":lang-selector:0.3"
runtime ":resources:1.2.8"
runtime ":cached-resources:1.0"
- runtime ":biocache-hubs:0.70"
+ runtime ":biocache-hubs:0.73"
}
}
diff --git a/grails-app/conf/Config.groovy b/grails-app/conf/Config.groovy
index 6b9a69a0..98a5ea2c 100644
--- a/grails-app/conf/Config.groovy
+++ b/grails-app/conf/Config.groovy
@@ -30,7 +30,7 @@ println "default_config = ${default_config}"
/******************************************************************************\
* SKINNING
\******************************************************************************/
-skin.layout = 'generic'
+skin.layout = 'generic-pt'
skin.orgNameLong = "Generic Data Portal"
skin.orgNameShort = "Occurrences"
// whether crumb trail should include a home link that is external to this webabpp - ala.baseUrl is used if true
@@ -42,6 +42,7 @@ chartsBgColour = "#FFFFFF"
// 3rd part WMS layer to show on maps
map.overlay.url = ""
map.overlay.name = ""
+biocache.baseUrl="http://ala-demo.org/biocache-service"
/******************************************************************************\
* MISC
diff --git a/grails-app/i18n/messages.properties b/grails-app/i18n/messages.properties
old mode 100644
new mode 100755
index 6b6203d2..5cc26ba0
--- a/grails-app/i18n/messages.properties
+++ b/grails-app/i18n/messages.properties
@@ -1 +1,19 @@
-# Add your custom i18n messages here.
\ No newline at end of file
+# Add your custom i18n messages here.
+home.menu.home=Home
+home.menu.news=News
+home.menu.participation=Participation
+home.menu.data=Data
+home.menu.cooperation=Cooperation
+home.menu.resources=Resources
+home.menu.about=About us
+
+ala.menu.home=Home
+ala.menu.occurrences=Occurrences
+ala.menu.data=Species Data
+ala.menu.location=Location
+ala.menu.datasets=Datasets
+ala.menu.publishers=Publishers
+
+site.name=gbif.pt
+site.slogan=Global Biodiversity Information Facility
+ala.site.name=Portuguese Biodiversity Data Portal
diff --git a/grails-app/i18n/messages_pt_PT.properties b/grails-app/i18n/messages_pt_PT.properties
new file mode 100755
index 00000000..a56c94dd
--- /dev/null
+++ b/grails-app/i18n/messages_pt_PT.properties
@@ -0,0 +1,462 @@
+#X-Generator: crowdin.com
+admin.index.title=Fun\u00e7\u00f5es de Admin
+admin.index.navigator.home=In\u00edcio
+admin.index.navigator.admin=Admin
+admin.index.af.title=Fun\u00e7\u00f5es de Admin
+admin.index.af.message01=Alerta\:
+admin.index.ob.title=Banner de fora de servi\u00e7o
+admin.index.ob.navigator01=Definir ou modificar o banner de fora de servi\u00e7o
+admin.index.ec.title=Configura\u00e7\u00e3o externa
+admin.index.ec.message01=Insira var/s config para verificar (separado por virgula)
+admin.index.ec.message02=Nota\: As defini\u00e7\u00f5es de config do CAS n\u00e3o ser\u00e3o recarregadas (s\u00f3 as configura\u00e7\u00f5es Grails)
+admin.index.cm.title=Gest\u00e3o do cache
+admin.index.cm.navigator.cac=Limpar toda a cache
+admin.index.cm.navigator.cbc=Limpar a cache do biocache
+admin.index.cm.navigator.ccc=Limpar cache do collectory
+admin.index.cm.navigator.cfc=Limpar cache das facetas
+admin.index.cm.navigator.cltc=Limpar cache de longo prazo
+
+admin.outagem.title=Admin - banner de fora de servi\u00e7o
+admin.outagem.navigator.home=In\u00edcio
+admin.outagem.navigator.admin=Admin
+admin.outagem.navigator.ob=Banner de fora de servi\u00e7o
+admin.outagem.aom.title=Admin - mensagem de fora de servi\u00e7o
+admin.outagem.form.label01=Mensagem de fora de servi\u00e7o
+admin.outagem.form.span01=Este texto aparece em todas as p\u00e1ginas para o
per\u00edodo especificado nos campos de data abaixo
+admin.outagem.form.label02=Data de in\u00edcio
+admin.outagem.form.span02=aaaa-mm-dd
+admin.outagem.form.label03=Data de Fim
+admin.outagem.form.span03=aaaa-mm-dd
+admin.outagem.form.label04=Mostrar mensagem
+admin.outagem.form.span04=confirme isto para mostrar a mensagem (datas ainda s\u00e3o necess\u00e1rias para ser v\u00e1lido)
+admin.outagem.form.submit=Submeter
+
+
+home.index.title=Procurar registos
+home.index.body.title=Procurar por registos em
+home.index.body.alert=Alerta\:
+home.index.navigator01=Pesquisa Simples
+home.index.navigator02=Pesquisa Avan\u00e7ada
+home.index.navigator03=Procurar taxon em s\u00e9rie
+home.index.navigator04=Pesquisa do n\u00famero de cat\u00e1logo
+home.index.navigator05=Pesquisa de shapefile
+home.index.simsplesearch.button=Pesquisar
+home.index.simsplesearch.span=Nota\:a pesquisa simples tenta corresponder a uma esp\u00e9cie/taxon conhecida - pelo seu nome cient\u00edfico ou nome comum. Se n\u00e3o houver nenhuma correspond\u00eancia de nome, ser\u00e1 realizada uma pesquisa de texto completo na sua consulta
+advancedsearch.title01=Encontrar registos que tenham
+advancedsearch.table01col01.title=TODAS estas palavras (texto completo)
+advancedsearch.title02=Encontrar registos para QUALQUER um dos seguintes taxa (conceito de taxon correspondido/processado)
+advancedsearch.table02col01.title=Esp\u00e9cie/taxon
+advancedsearch.title03=Localizar registos que especifiquem o seguinte nome cient\u00edfico (nome verbatim/n\u00e3o processado)
+advancedsearch.table03col01.title=Nome Cientifico N\u00e3o Processado
+advancedsearch.title04=Encontrar registos a partir do seguinte grupo de esp\u00e9cies
+advancedsearch.table04col01.title=Grupo de esp\u00e9cies
+advancedsearch.table04col01.option.label=-- selecione um grupo de esp\u00e9cies --
+advancedsearch.title05=Encontrar registos a partir da seguinte institui\u00e7\u00e3o ou cole\u00e7\u00e3o
+advancedsearch.table05col01.title=Institui\u00e7\u00e3o ou Cole\u00e7\u00e3o
+advancedsearch.table05col01.option01.label=-- selecione uma institui\u00e7\u00e3o ou cole\u00e7\u00e3o --
+advancedsearch.table05col01.option02.label=Todos os registos de
+advancedsearch.table05col01.option03.label=Cole\u00e7\u00e3o
+advancedsearch.title06=Encontrar registos das seguintes regi\u00f5es
+advancedsearch.table06col01.title=Pa\u00eds
+advancedsearch.table06col01.option.label=-- selecione um pa\u00eds --
+advancedsearch.table06col02.title=Estado/Territ\u00f3rio
+advancedsearch.table06col02.option.label=-- selecione um estado/territ\u00f3rio --
+advancedsearch.table06col03.title=regi\u00e3o
+advancedsearch.table06col03.option.label=-- selecione uma regi\u00e3o IBRA --
+advancedsearch.table06col04.title=regi\u00e3o
+advancedsearch.table06col04.option.label=-- selecione uma regi\u00e3o IMCRA --
+advancedsearch.table06col05.title=\u00c1rea de Administ. Local
+advancedsearch.table06col05.option.label=-- selecione a \u00e1rea de administra\u00e7\u00e3o local--
+advancedsearch.title07=Encontrar registos a partir da seguinte condi\u00e7\u00e3o do tipo
+advancedsearch.table07col01.title=Condi\u00e7\u00e3o do Tipo
+advancedsearch.table07col01.option.label=-- selecione uma condi\u00e7\u00e3o do tipo --
+advancedsearch.title08=Encontrar registos a partir da seguinte base do registo (tipo de registo)
+advancedsearch.table08col01.title=Base do registo
+advancedsearch.table08col01.option.label=-- selecione uma base do registo --
+advancedsearch.title09=Localizar registos com os seguintes campos no conjunto de dados
+advancedsearch.table09col01.title=N\u00famero de cat\u00e1logo
+advancedsearch.table09col02.title=N\u00famero de registo
+advancedsearch.title10=Encontrar registos no seguinte intervalo de tempo
+advancedsearch.table10col01.title=Data de in\u00edcio
+advancedsearch.table10col01.des=(AAAA-MM-DD) deixe em branco para a data mais recente
+advancedsearch.table10col02.title=Data de Fim
+advancedsearch.table10col02.des=(AAAA-MM-DD) deixe em branco para a data mais recente
+advancedsearch.button.submit=Pesquisar
+home.index.taxaupload.des01=Insira uma lista de nomes cient\u00edficos/nomes de taxa, um nome por linha (nomes comuns n\u00e3o suportados atualmente).
+home.index.taxaupload.button01=Pesquisar
+home.index.catalogupload.des01=Insira uma lista de n\u00fameros de cat\u00e1logo (um n\u00famero por linha).
+home.index.catalogupload.button01=Pesquisar
+home.index.shapefileupload.des01=Nota\: este recurso ainda \u00e9 experimental. Se houver v\u00e1rios pol\u00edgonos presentes na shapefile, somente o primeiro pol\u00edgono ser\u00e1 usado para a pesquisa.
+home.index.shapefileupload.des02=Carregar uma shapefile (*. shp).
+home.index.shapefileupload.button01=Pesquisar
+
+show.title=Registo
+show.headingbar01.title=Registo de ocorr\u00eancia
+show.jsonlink.login=Iniciou sess\u00e3o como\:
+show.clubview.message=Mostrar "Vista de clube"
+show.backbtn.navigator=Voltar aos resultados da pesquisa
+show.systemassertioncontainer.title=Testes de qualidade de dados
+show.dataqualityreportlink.navigator=Ver o relat\u00f3rio de qualidade de dados completo
+show.duplicatelink.navigator=Potencial registo duplicado - ver detalhes
+show.expertrangelink.navigator=Fora da \u00e1rea do especialista - ver detalhes
+show.outlierreportlink.navigator=An\u00f3malo ambiental - ver detalhes
+show.userassertionscontainer.title=Quest\u00f5es sinalizadas pelo utilizador
+show.showuserflaggedissues.navigator=Ver lista de quest\u00f5es & coment\u00e1rios
+show.button.verifybtn.span=Verificar registo
+show.verifyrecord.title=Confirma\u00e7\u00e3o
+show.verifyask.set01=suspeito ao n\u00edvel geoespacial
+show.verifyask.set02=suspeito ao n\u00edvel taxon\u00f3mico
+show.verifyrecord.p01=Registo est\u00e1 marcado como
+show.verifyrecord.p02=Clique no bot\u00e3o "Confirmar" para verificar que este registo est\u00e1 correto e que os "problemas de valida\u00e7\u00e3o" listados s\u00e3o incorretos/inv\u00e1lidos.
Por favor, forne\u00e7a um coment\u00e1rio curto, apoiando a sua verifica\u00e7\u00e3o.
+show.verifyrecord.btn.confirmverify=Confirmar
+show.verifyrecord.btn.cancel=Cancelar
+show.verifydone.message=Registo verificado com \u00eaxito
+show.verifydone.btn.closeverify=Fechar
+show.sidebar01.p=Este registo foi transcrito da etiqueta por um volunt\u00e1rio online. Ainda n\u00e3o foi validado pela institui\u00e7\u00e3o propriet\u00e1ria
+show.sidebar01.volunteer.navigator=Portal do Volunt\u00e1rio de Biodiversidade
+show.button.viewdraftbutton.span=Ver o rascunho no Portal do Volunt\u00e1rio de Biodiversidade
+show.button.assertionbutton.span=Marcar um problema
+show.loginorflag.title=Marcar um problema
+show.loginorflag.div01.label=Inicie a sess\u00e3o, p.f\:
+show.loginorflag.div01.navigator=Clique aqui
+show.loginorflag.div02.label=Iniciou sess\u00e3o como
+show.issueform.label01=Tipo de quest\u00e3o\:
+show.issueform.label02=Coment\u00e1rios\:
+show.issueform.button.submit=Submeter
+show.issueform.button.cancel=Cancelar
+show.issueform.button.close=Fechar
+show.loginorflag.divbutton=Fechar
+show.sidebar02.showrawprocessed.span=Originais vs processado
+show.sidebar03.title=Imagens
+show.sidebar03.cite01=Fot\u00f3grafo
+show.sidebar03.cite02=Direitos
+show.sidebar03.cite03=Titular dos direitos
+show.sidebardiv.occurrenceimages.navigator01=Ver detalhes da imagem
+show.sidebardiv.occurrenceimages.navigator02=Ver imagem original
+show.occurrencemap.title=Localiza\u00e7\u00e3o do registo
+show.soundsheader.title=Sons
+show.sidebar04.cite=Direitos
+show.sidebar04.p=Por favor, pressione o bot\u00e3o play para ouvir o arquivo de som associado a este registo de ocorr\u00eancia.
+show.sidebar05.p01=Data carregada
+show.sidebar05.p02=Data do \u00faltimo processamento
+show.hasexpertdistribution.title=Gravar fora da \u00e1rea de distribui\u00e7\u00e3o do especialista (mostrada em vermelho)
+show.userannotationsdiv.title=Quest\u00f5es sinalizadas pelo utilizador
+show.dataquality.title=Testes de qualidade de dados
+show.dataqualitymodal.title=Detalhes de Qualidade de Dados
+show.dataqualitymodal.body=a carregar
+show.dataqualitymodal.button=Fechar
+show.tabledataqualityresultscol01.title=Nome de teste
+show.tabledataqualityresultscol02.title=Resultado
+show.tabledataqualityresults.tr01td02=Falhou
+show.tabledataqualityresults.tr02td02=Aviso
+show.tabledataqualityresults.tr03td02=Aprovado
+show.tabledataqualityresults.tr04td02=Mostrar/Esconder
+show.tabledataqualityresults.tr05td02=Em falta
+show.tabledataqualityresults.tr06td02=Mostrar/Esconder
+show.tabledataqualityresults.tr07td02=N\u00e3o verificado (falta de dados)
+show.outlierinformation.title=Informa\u00e7\u00f5es do an\u00f3malo
+show.outlierinformation.p01=Este registo foi detectado como um an\u00f3malo usando o
+show.outlierinformation.p.vavigator=Algoritmo de Jackknife inverso
+show.outlierinformation.p02=para as seguintes camadas
+show.outlierinformation.each.label01=Notas
+show.outlierinformation.each.label02=Escala
+show.outlierinformation.p.label=Mais informa\u00e7\u00e3o sobre o trabalho de qualidade de dados realizado pelo Atlas est\u00e1 dispon\u00edvel aqui
+show.outlierinformation.p.li02=Notas sobre M\u00e9todos de Detec\u00e7\u00e3o de An\u00f3malos Espaciais
+show.inferredoccurrencedetails.title=Inferir detalhes de ocorr\u00eancia associados
+show.inferredoccurrencedetails.p01=Este registo foi identificado como a ocorr\u00eancia representativa de um grupo de ocorr\u00eancias associadas. Quer dizer que outros registos foram detectados e que parecem relacionar-se com este registo e este registo em particular tem informa\u00e7\u00f5es mais detalhadas sobre a ocorr\u00eancia.
+show.inferredoccurrencedetails.p02=Este registo est\u00e1 associado com o registo representativo. Isto quer dizer que outro registo foi detetado como semelhante a este registo, e que o outro registo (o registo representativo) tem mais informa\u00e7\u00e3o detalhada para a ocorr\u00eancia.
+show.inferredoccurrencedetails.p03=Mais informa\u00e7\u00f5es sobre os m\u00e9todos de dete\u00e7\u00e3o de duplica\u00e7\u00e3o e a terminologia em uso est\u00e3o dispon\u00edveis aqui
+show.table01.title=Registo Representativo
+show.table02.title=Registos relacionados
+show.outlierinformation.02.title01=Informa\u00e7\u00e3o adicional sobre fronteiras pol\u00edticas
+show.outlierinformation.02.title02=Amostragem ambiental para este local
+show.processedvsrawview.title="Original versus Processado" Tabela de compara\u00e7\u00e3o
+show.processedvsrawview.table.th01=Grupo
+show.processedvsrawview.table.th02=Nome do Campo
+show.processedvsrawview.table.th03=Valor Original
+show.processedvsrawview.table.th04=Valor Processado
+show.processedvsrawview.button.close=Fechar
+show.userannotationtemplate.title=sinalizadas por
+show.userannotationtemplate.p01.navigator=Ver mais com esta anota\u00e7\u00e3o
+show.userannotationtemplate.p02.navigator=Eliminar esta anota\u00e7\u00e3o
+show.headingbar02.title=Registo n\u00e3o encontrado
+show.headingbar02.p01=O ID do Registo pedido
+show.headingbar02.p02=n\u00e3o foi encontrado
+show.body.error.title=Ocorreu um erro
+
+list.title=Pesquisar
+list.advancedsearchlink.navigator=Pesquisa Avan\u00e7ada
+list.advancedsearchlink.button.label=Pesquisa r\u00e1pida
+list.01.error=Erro
+list.02.p01=Nenhum registo encontrado para
+list.02.p02=Nenhum registo encontrado para
+list.02.p03.01=A tentar pesquisar por
+list.02.p03.02=texto
+list.03.p01=Nenhum registo encontrado para
+list.03.p02=A tentar pesquisar por
+list.03.p03=Nenhum registo encontrado para
+list.customisefacetsbutton.div01.title=Selecione as categorias de filtro que deseja que apare\u00e7a na coluna "Refinar os resultados"
+list.facetcheckboxes.label01=Selecionar
+list.facetcheckboxes.navigator01=Todos
+list.facetcheckboxes.navigator02=Nenhum
+list.facetcheckboxes.button.updatefacetoptions=Atualizar
+list.facetcheckboxes.button.resetfacetoptions=Repor defini\u00e7\u00f5es por defeito
+list.facetcheckboxes.div02.title=Facetas personalizadas
+list.resultsretuened.span.returnedtext=resultados para
+list.resultsretuened.button01=Limpar tudo
+list.resultsretuened.navigator01=marcador de posi\u00e7\u00e3o
+list.resultsretuened.div01.des01=Os resultados da pesquisa incluem registos para sin\u00f3nimos e taxa filhos de
+list.resultsretuened.div01.des02=marcador de posi\u00e7\u00e3o
+list.resultsretuened.div01.des03=link marcador de posi\u00e7\u00e3o
+list.resultsretuened.form.des01=O conjunto de resultados cont\u00e9m registos fornecidos com os seguintes nomes
+list.resultsretuened.form.button01=Refinar pesquisa
+list.resultsretuened.form.div01=lista de marcadores de posi\u00e7\u00e3o dos taxa
+list.alert.title=Alertas por email
+list.alert.navigator01=Receba alertas de email para novos registos
+list.alert.navigator02=Receba alertas de email para novas anota\u00e7\u00f5es
+list.alert.navigator03=Ver os seus alertas atuais
+list.alert.button01=Fechar
+list.link.t1=Registos
+list.link.t2=Mapa
+list.link.t3=Gr\u00e1ficos
+list.link.t4=Imagens de esp\u00e9cies
+list.link.t5=Gravar imagens
+list.downloads.navigator=Transfer\u00eancias
+list.alerts.navigator=Alertas
+list.sortwidgets.span01=por
+list.sortwidgets.span02=p\u00e1gina
+list.sortwidgets.sort.label=ordenar
+list.sortwidgets.sort.option01=Melhor correspond\u00eancia
+list.sortwidgets.sort.option02=Nome do taxon
+list.sortwidgets.sort.option03=Nome comum
+list.sortwidgets.sort.option0401=Data de colheita
+list.sortwidgets.sort.option0402=Data de registo
+list.sortwidgets.sort.option05=Tipo de registo
+list.sortwidgets.sort.option06=Data adicionado
+list.sortwidgets.sort.option07=\u00daltima anota\u00e7\u00e3o
+list.sortwidgets.dir.label=ordem
+list.sortwidgets.dir.option01=Ascendente
+list.sortwidgets.dir.option02=Descendente
+list.recordsview.benchmarks.01=tempo de representa\u00e7\u00e3o da lista
+list.recordsview.benchmarks.02=ms
+list.speciesimages.title=Imagens representativas da esp\u00e9cie
+list.speciesgallerycontrols.label01=Filtrar por grupo
+list.speciesgallerycontrols.speciesgroup.option01=N\u00e3o h\u00e1 grupos de esp\u00e9cies carregados
+list.speciesgallerycontrols.label02=Ordenar por
+list.speciesgallerycontrols.speciesgallerysort.option01=Nome comum
+list.speciesgallerycontrols.speciesgallerysort.option02=Nome cient\u00edfico
+list.speciesgallerycontrols.speciesgallerysort.option03=Contagem de registo
+list.speciesgallerycontrols.speciesgallery=Galeria de imagens deve aparecer aqui
+list.speciesgallerycontrols.loadmorespecies.button=Mostrar mais imagens
+list.speciesgallerycontrols.recordimages.title=Imagens dos registos de ocorr\u00eancia
+list.speciesgallerycontrols.imagesgrid=a carregar imagens
+list.speciesgallerycontrols.loadmoreimages.button=Mostrar mais imagens
+list.endpagetime01=tempo p\u00f3s-facetas
+list.endpagetime02=tempo de rendi\u00e7\u00e3o de p\u00e1gina
+list.endpagetime03=biocache-service GET time
+list.endpagetime04=tempo de processamento do controlador
+list.endpagetime05=tempo total de processamento
+
+eya.title01=Explore a sua \u00e1rea
+eya.title02=Atlas of Living Australia
+eya.breadcrumb.navigator01=In\u00edcio
+eya.breadcrumb.navigator02=Locais
+eya.breadcrumb.navigator03=Sua \u00c1rea
+eya.header.title=Explore a sua \u00e1rea
+eya.searchform.label01=Introduza a sua localiza\u00e7\u00e3o ou endere\u00e7o
+eya.searchform.btn01=Pesquisar
+eya.searchform.des01=Por exemplo, um endere\u00e7o da rua, nome do lugar, c\u00f3digo postal ou coordenadas de GPS (como lat, long)
+eya.searchform.label02=Mostrar registos para
+eya.searchformradius.label01=Exibir os registos em um
+eya.searchformradius.label02=raio em km
+eya.searchform.a.viewallrecords.01=Ver
+eya.searchform.a.viewallrecords.02=todos
+eya.searchform.a.viewallrecords.03=registos
+eya.searchform.a.downloads=Transfer\u00eancias
+eya.dialogconfirm01=Est\u00e1 prestes a transferir uma lista de esp\u00e9cies encontradas dentro de um
+eya.dialogconfirm02=raio em km de
+eya.dialogconfirm03=Formato\: ficheiro delimitado por tabuladores (chamado data.xls)
+eya.table.01.th01=Grupo
+eya.table.01.th02=Esp\u00e9cies
+eya.table.02.th01=Esp\u00e9cies
+eya.table.02.th01.a=Nome comum
+eya.table.02.th02=Registos
+eya.table.03.td=Registos
+eya.maptips.01=Dicas
+eya.maptips.02=Pode ajustar a localiza\u00e7\u00e3o da \u00e1rea, arrastando o \u00edcone do marcador vermelho
+
+download.download.title=Transfer\u00eancias
+download.termsofusedownload.01=Ao transferir este conte\u00fado est\u00e1 a concordar em us\u00e1-lo de acordo com o Atlas of Living Australia
+download.termsofusedownload.02=Condi\u00e7\u00f5es de Utiliza\u00e7\u00e3o
+download.termsofusedownload.03=e quaisquer Termos do Provedor de Dados associado \u00e0 transfer\u00eancia de dados.
+download.termsofusedownload.04=Por favor forne\u00e7a as seguintes informa\u00e7\u00f5es antes de transferir (* obrigat\u00f3rio)
+download.downloadform.label01=Email
+download.downloadform.label02=Nome do ficheiro
+download.downloadform.label03=Raz\u00e3o da transfer\u00eancia
+download.downloadformreasontypeid.option=selecione um motivo
+download.downloadform.label04=Tipo de transfer\u00eancia
+download.downloadform.radio01=Todos os registos
+download.downloadform.radio02=Checklist de esp\u00e9cies
+download.downloadform.radio03=Guia de campo de esp\u00e9cies
+download.downloadform.button.submit=Iniciar Transfer\u00eancia
+download.note.01=Nota
+download.note.02=O guia de campo pode levar alguns minutos para preparar e transferir
+download.button.close=Fechar
+
+recordcore.oc.title=Conjunto de dados
+recordcore.span01=C\u00f3digo da institui\u00e7\u00e3o fornecido
+recordcore.span02=C\u00f3digo da cole\u00e7\u00e3o fornecida
+recordcore.span03=Fornecido como
+recordcore.span04=Base fornecida
+recordcore.span04.01=N\u00e3o fornecido
+recordcore.collectornamelabel.01=Coletor
+recordcore.collectornamelabel.02=Observador
+recordcore.collectornamelabel.03=Coletor/observador
+recordcore.recorededbyfield.01=registadoPor
+recordcore.recorededbyfield.02=Idutilizador
+recordcore.span05=Fornecido como
+recordcore.recordnumberlabel.01=N\u00famero de colheita
+recordcore.recordnumberlabel.02=N\u00famero de registo
+recordcore.span06=Fornecido como
+recordcore.occurrencedatelabel.01=Data de colheita
+recordcore.occurrencedatelabel.02=Data de registo
+recordcore.occurrencedatelabel.03=Data n\u00e3o fornecida
+recordcore.occurrencedatelabel.04=Ano
+recordcore.occurrencedatelabel.05=M\u00eas
+recordcore.occurrencedatelabel.06=Dia
+recordcore.occurrencedatelabel.07=Data fornecida
+recordcore.occurrencedatelabel.08=Fornecido como
+recordcore.occurrencedatelabel.09=ano
+recordcore.occurrencedatelabel.10=m\u00eas
+recordcore.occurrencedatelabel.11=dia
+recordcore.occurrencedatelabel.12=Data fornecida
+recordcore.iao.01=Este registo tem
+recordcore.iao.02=A ocorr\u00eancia est\u00e1 associada a um registo representativo
+recordcore.iao.03=Para mais informa\u00e7\u00f5es veja
+recordcore.iao.04=Inferir detalhes de ocorr\u00eancia associados
+recordcore.occurencetaxonomy.title=Taxonomia
+recordcore.tr01=categoria n\u00e3o reconhecida
+recordcore.tr02=Fornecido como
+recordcore.cn.01=Fornecido o nome comum
+recordcore.kingdom.01=Fornecido como
+recordcore.phylum.01=Fornecido como
+recordcore.class.01=Fornecido como
+recordcore.order.01=Fornecido como
+recordcore.family.01=Fornecido como
+recordcore.genus.01=Fornecido como
+recordcore.species.01=Fornecido como
+recordcore.geospatialtaxonomy.title=Geoespacial
+recordcore.st.01=Fornecido como
+recordcore.locality.01=Fornecido como
+recordcore.cg.label=Devido a quest\u00f5es de sensibilidade, as coordenadas deste registo foram generalizadas
+recordcore.div.addtionalproperties.title=Propriedades adicionais
+
+map.spatialportal.btn.label=Ver no portal espacial
+map.downloadmaps.btn.label=Transferir mapa
+map.maplayercontrols.tr01td01.label=C\u00f4r por
+map.maplayercontrols.tr01td01.option01=Nenhum
+map.maplayercontrols.tr01td01.option02=Grelha de densidade dos registos
+map.maplayercontrols.tr01td02.label=Tamanho
+map.maplayercontrols.tr01td03.label=Opacidade
+map.maplayercontrols.tr01td04.label=Contorno
+map.recordpopup=Ver registos neste ponto
+map.downloadmap.title=Transferir mapa publicado
+map.downloadmap.field01.label=Formatar
+map.downloadmap.field01.option01=JPEG
+map.downloadmap.field01.option02=PNG
+map.downloadmap.field02.label=Qualidade (DPI)
+map.downloadmap.field03.label=Ponto raio (mm)
+map.downloadmap.field04.label=Opacidade
+map.downloadmap.field05.label=C\u00f4r
+map.downloadmap.field06.label=Largura (mm)
+map.downloadmap.field07.label=Inclui escala
+map.downloadmap.field07.option01=Sim
+map.downloadmap.field07.option02=N\u00e3o
+map.downloadmap.field08.label=Pontos de contorno
+map.downloadmap.field08.option01=Sim
+map.downloadmap.field08.option02=N\u00e3o
+map.downloadmap.field09.label=Camada de base
+map.downloadmap.field09.option01=Contorno do mundo
+map.downloadmap.field09.option02=Estados & Territ\u00f3rios
+map.downloadmap.field09.option03=\u00c1reas de administra\u00e7\u00e3o local
+map.downloadmap.field09.option04=IBRA
+map.downloadmap.field09.option05=Sub-regi\u00f5es IBRA
+map.downloadmap.field09.option06=IMCRA
+map.downloadmap.field10.label=Nome do ficheiro (sem extens\u00e3o)
+map.downloadmap.button01.label=Transferir mapa
+map.downloadmap.button02.label=Fechar
+
+facets.currentfilter.link=Limpar tudo
+facets.groupdynamicfacets.link=escolha mais
+facets.facetfromgroup.link=escolha mais
+facets.multiplefacets.title=Refine a sua pesquisa
+facets.multiplefacets.tableth01=Contagem
+facets.multiplefacets.tabletr01td01=a carregar dados
+facets.submitfacets.li01=INCLUIR todos os valores (inclua o caracter de substitui\u00e7\u00e3o)
+facets.submitfacets.li02=EXCLUIR todos os valores (excluir caracter de substitui\u00e7\u00e3o)
+facets.submitfacets.button=Fechar
+facets.endtime.l=tempo de rendi\u00e7\u00e3o de facetas
+facets.endtime.r=ms
+
+generic.navbar01.label=Iniciou sess\u00e3o como
+generic.navbar02.li01=In\u00edcio
+generic.navbar02.li02=Sobre
+generic.navbar02.li03=Contato
+generic.footer.link01=Este site \u00e9 licenciado sob uma
+generic.footer.link02=Licen\u00e7a de Creative Commons Attribution 3.0 Australia
+generic.footer.link03=O provedor do conte\u00fado pode estar abrangido por outro
+generic.footer.link04=Condi\u00e7\u00f5es de Utiliza\u00e7\u00e3o
+
+facet.state=Estado ou Territ\u00f3rio
+facet.synonym.decade=ocorr\u00eancia_ano
+
+search.facets.heading=Restrinja os seus resultados
+search.filters.heading=Filtros selecionados
+search.filter.customise=Personalizar filtros
+search.heading.list=Registo de ocorr\u00eancia
+search.map.viewing=Visualiza\u00e7\u00e3o
+search.map.of=de
+search.map.occurrences=Ocorr\u00eancias
+search.map.viewAllRecords=ver todos
+search.map.popup.prev=< anterior
+search.map.popup.next=pr\u00f3ximo >
+search.map.popup.viewRecord=Mostrar registo
+search.recordNotFoundForId=Erro - n\u00e3o foi encontrado o registo para o ID
+
+home.searchForRecordsIn=Procurar por registos em
+
+show.occurrenceRecord=Registo de ocorr\u00eancia
+show.comparisonTable.title="Original versus Processado" Tabela de compara\u00e7\u00e3o
+
+assertions.failed=falhou
+assertions.warnings=avisos
+assertions.passed=aprovado
+assertions.missing=em falta
+assertions.unchecked=n\u00e3o verificado
+
+record.eventDate.label=Data do evento
+record.recordedBy.label=Coletor
+record.institutionName.label=Institui\u00e7\u00e3o
+record.collectionName.label=Cole\u00e7\u00e3o
+record.catalogNumber.label=N\u00famero de cat\u00e1logo
+record.dataResourceName.label=Recursos dos dados
+
+# Add your custom i18n messages here.
+home.menu.home=Início
+home.menu.news=Not\u00edcias
+home.menu.participation=Participa\u00e7\u00e3o
+home.menu.data=Dados
+home.menu.cooperation=Coopera\u00e7\u00e3o
+home.menu.resources=Recursos
+home.menu.about=Sobre n\u00f3s
+
+ala.menu.home=Início
+ala.menu.occurrences=Ocorrências
+ala.menu.data=Dados por espécie
+ala.menu.location=Locais
+ala.menu.datasets=Conjuntos de dados
+ala.menu.publishers=Publicadores
+
+site.name=gbif.pt
+site.slogan=Global Biodiversity Information Facility
+ala.site.name=Portal de Dados de Biodiversidade de Portugal
\ No newline at end of file
diff --git a/grails-app/views/layouts/generic-pt.gsp b/grails-app/views/layouts/generic-pt.gsp
new file mode 100755
index 00000000..cd0d0380
--- /dev/null
+++ b/grails-app/views/layouts/generic-pt.gsp
@@ -0,0 +1,263 @@
+