diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index e69de29b..00000000
diff --git a/config/assets.yml b/config/assets.yml
index 156926eb..55f54446 100644
--- a/config/assets.yml
+++ b/config/assets.yml
@@ -20,6 +20,7 @@ javascripts:
- public/javascripts/admin/plugins/cookie.js
- public/javascripts/admin/plugins/selectmenu.js
- public/javascripts/admin/locales/datepicker_fr.js
+ - public/javascripts/admin/locales/datepicker_pt-BR.js
- public/javascripts/admin/application.js
custom_fields:
- public/javascripts/admin/plugins/fancybox.js
diff --git a/config/initializers/locomotive.rb b/config/initializers/locomotive.rb
index 280d3898..a76f403e 100644
--- a/config/initializers/locomotive.rb
+++ b/config/initializers/locomotive.rb
@@ -37,7 +37,7 @@ Locomotive.configure do |config|
# If you do not mind about importing theme without DelayedJob, disable it.
config.delayed_job = false
- # default locale (for now, only en and fr are supported)
+ # default locale (for now, only en, fr and pt-BR are supported)
config.default_locale = :en
# Configure the e-mail address which will be shown in the DeviseMailer, NotificationMailer, ...etc
diff --git a/config/locales/admin_ui.en.yml b/config/locales/admin_ui.en.yml
index 1a4062e4..bc9989cc 100644
--- a/config/locales/admin_ui.en.yml
+++ b/config/locales/admin_ui.en.yml
@@ -159,6 +159,7 @@ en:
new_site: new site
en: English
fr: French
+ pt-BR: "Brazilian Portuguese"
ask_for_name: "Please type your new name"
theme_assets:
diff --git a/config/locales/admin_ui.fr.yml b/config/locales/admin_ui.fr.yml
index f39e2979..49b57131 100644
--- a/config/locales/admin_ui.fr.yml
+++ b/config/locales/admin_ui.fr.yml
@@ -159,6 +159,7 @@ fr:
new_site: nouveau site
en: en Anglais
fr: en Français
+ pt-BR: "en Portugaise"
ask_for_name: "Veuillez entrer le nouveau nom"
theme_assets:
diff --git a/config/locales/admin_ui.pt-BR.yml b/config/locales/admin_ui.pt-BR.yml
new file mode 100644
index 00000000..f19de87d
--- /dev/null
+++ b/config/locales/admin_ui.pt-BR.yml
@@ -0,0 +1,301 @@
+pt-BR:
+ admin:
+ buttons:
+ login: Entrar
+ send_password: Enviar
+ change_password: Mudar
+ new_item: "+ adicionar"
+ switch_to_site: Ir
+
+ messages:
+ confirm: Você tem certeza ?
+
+ shared:
+ header:
+ welcome: Bem-Vindo, %{name}
+ see: Ver websiste
+ logout: Sair
+ menu:
+ contents: Conteúdos
+ assets: Arquivos
+ settings: Configurações
+ pages: Páginas
+ snippets: Blocos de código
+ account: Minha Conta
+ site: Site
+ theme_assets: Arquivos do Tema
+ footer:
+ who_is_behind: "Desenvovido por %{development} e desenhado por Sacha Greif"
+ form_actions:
+ back: Voltar sem salvar
+ create: Criar
+ update: Atualizar
+ send: Enviar
+
+ errors:
+ "500":
+ title: Erro de aplicação
+ notice: "Desculpe-nos, algo não está funcionando como deveria"
+ link: "→ Voltar a aplicação"
+ "404":
+ title: Página não encontrada
+ notice: "A página requisitada não existe."
+ link: "→ Voltar a aplicação"
+
+ notifications:
+ new_content_instance:
+ subject: " Novo [%{type}] "
+ title: "Olá %{name}, apenas informando que uma nova instância foi criada em %{date}"
+ type: "Modelo: %{type}"
+
+ custom_fields:
+ edit:
+ title: Editando campo customizado
+ kind:
+ string: Texto Simples
+ text: Texto
+ category: Caixa de Seleção
+ boolean: Checkbox
+ date: Data
+ file: Arquivo
+ text_formatting:
+ none: Nenhum
+ html: HTML
+ edit_field:
+ title: Edita campo
+ edit_category:
+ title: Editar opções
+ help: Gerenciar a lista de opções da sua caixa de seleçõa.
+ collection_label: Lista de opções
+ custom_form:
+ edit_categories: Editar opções
+ delete_file: Excluir arquivo
+
+ sessions:
+ new:
+ title: Login
+ link: "Esqueci minha senha"
+ email: "Email"
+ password: "Senha"
+
+ passwords:
+ new:
+ title: Esqueci minha senha
+ link: "→ Voltar a página de login"
+ email: "Seu email"
+ edit:
+ title: Atualizar minha senha
+ link: "→ Voltar a página de login"
+ password: "Sua nova senha"
+ password_confirmation: "Confirmação da sua nova senha"
+
+ pages:
+ index:
+ title: Listando páginas
+ help: "As páginas são organizadas como uma árvore. Você pode reordenar as páginas como se fossem pastas"
+ no_items: "Não existe nenhuma página ainda. Clique aqui para criar a primeira."
+ new: nova página
+ lastest_items: Últmas páginas
+ new:
+ title: Nova página
+ help: "Por favor, preencha o formulário a seguir para criar sua página. Atenção: Por padrão a página não é publicada."
+ page:
+ updated_at: atualizada em
+ edit:
+ show: mostrar
+ help: "O título da página pode ser alterado clicando nele."
+ ask_for_title: "Por favor preencha o novo título"
+ form:
+ delete_file: Excluir arquivo
+ default_block: Padrão
+ cache_strategy:
+ none: Nenhum
+ simple: Simples
+ hour: 1 hora
+ day: 1 dia
+ week: 1 semana
+ month: 1 mês
+
+ snippets:
+ index:
+ title: Listando Blocos de Código
+ help: "Blocos de código são alguns códigos HTML que pode sem encontrados em diferentes lugares do site e podem ser reutilizados ( como o rodapé )."
+ no_items: "Você ainda não tem blocos de código. Clique aqui para criar o primeiro."
+ new: novo bloco
+ new:
+ title: Novo bloco
+ help: "Preecha o formulário a seguirar para atulizar o seu bloco de código."
+ edit:
+ title: Editing snippet
+ help: "Preecha o formulário a seguirar para atulizar o seu bloco de código."
+ snippet:
+ updated_at: Atualizado em
+
+ sites:
+ new:
+ title: Novo site
+ help: "Preencha o formulário a seguir para criar um novo site."
+
+ current_sites:
+ edit:
+ import: importar
+ new_membership: adicionar conta
+ help: "O nome do site pode ser alterado clicando nele."
+ ask_for_name: "Por favor, digite o novo nome do site"
+
+ memberships:
+ new:
+ title: Novo usuário
+ help: "Por favor, forneça o e-mail que deseja adicionar. Se ele não exister, você será redirecionado para o formulário de criação."
+
+ accounts:
+ new:
+ title: Nova conta
+ help: "Preencha o formulário a seguir para criar uma nova conta."
+
+ my_accounts:
+ edit:
+ help: "Seu nome pode ser atualizado clicando nele."
+ new_site: novo site
+ en: Inglês
+ fr: Francês
+ pt-BR: "Português do Brasil"
+ ask_for_name: "Por favor preencha o novo nome"
+
+ theme_assets:
+ index:
+ title: Listando arquivos do tema
+ help: "Nesta seção todos os arquivos relacionados a layout são armazenados e gerenciados. Se você precisa de uma galeria de imagens, vá a seção de Arquivos."
+ all: todos arquivos
+ new: novo arquivo
+ snippets: Blocos
+ css_and_js: CSS e Javascript
+ fonts: Fontes
+ images: Imagens
+ media: Mídia
+ no_items: "Ainda não existem arquivos. Clique aqui para criar o primeiro."
+ asset:
+ updated_at: Atualizado em
+ new:
+ title: Novo arquivo
+ help: "Você pode escolher em enviar qualquer arquivo ou copiar/colar um arquivo de css/javascript em texto."
+ edit:
+ title: "Editando %{file}"
+ help: "Esse arquivo pode ser acessado pela seguinte URL: %{url}"
+ form:
+ picker_link: Insira um arquivo no código
+ choose_file: Escolha um arquivo
+ choose_plain_text: Escolher texto plano
+ images:
+ title: Listando imagens
+ no_items: "Não existem imagens ainda."
+
+ asset_collections:
+ index:
+ title: Coleções de arquivos
+ help: "O nome da coleção pode ser alterado clicando nele. Você pode customizar os arquivos nas coleções adicionando campos."
+ new: nova coleção
+ no_items: "Não existem coleções ainda. Clique aqui para criar a primeira."
+ new:
+ title: Nova Coleção
+ help: "Por enquanto, apenas insira o nome. Outras opções irão aparecer após o formulário ser enviado."
+ edit:
+ help: "O nome da coleção pode ser alterado clicando nele. Você pode customizar os arquivos nas coleções adicionando campos."
+ add_asset: adicionar arquivo
+ destroy: excluir coleção
+ no_items: "Não existem coleções ainda. Clique aqui para criar a primeira."
+ ask_for_name: Por favor preencha o novo nome"
+
+ assets:
+ new:
+ title: Novo arquivo
+ help: "Preencha o formulário a seguir para criar o seu arquivo."
+ edit:
+ title: Editar arquivo
+ help: "Preencha o formulário a seguir para atualizar o seu arquivo."
+
+ content_types:
+ index:
+ new: novo modelo
+ new:
+ title: Novo modelo
+ help: "Crie o seu próprio modelo de dados (Projetos, Pessoas, ...etc). Seu modelo deve conter um campo pelo menos. Os itens criados a partir desse tipo de conteúdo terão seu primeiro campo como obrigatório."
+ edit:
+ title: Editar modelo
+ help: "Seu modelo deve conter um campo pelo menos. Os itens criados a partir desse tipo de conteúdo terão seu primeiro campo como obrigatório."
+ show_items: mostrar itens
+ new_item: novo item
+ form:
+ order_by:
+ created_at: 'Por "criado em" data'
+ updated_at: 'Por "atualizado em" data'
+ position_in_list: Manual
+
+ contents:
+ index:
+ title: 'Listando "%{type}"'
+ edit: editar modelo
+ destroy: excluir modelo
+ download: download dos itens
+ new: novo item
+ category_noname: "Sem nome"
+ lastest_items: "Últimos itens"
+ updated_at: "Atualizado em"
+ list:
+ no_items: "Não existem itens ainda. Clique aqui para criar o primeiro."
+ new:
+ title: '%{type} — novo item'
+ edit:
+ title: '%{type} — editando item'
+
+ image_picker:
+ link: Insira uma imagem no código
+
+ cross_domain_sessions:
+ new:
+ title: Autenticação por mútiplos domínios.
+ notice: Você será redirecionado para o site em alguns segundos.
+
+ imports:
+ new:
+ title: Importar
+ help: "Tenha cuidado ao enviar um novo tema ao seu site que já existe, seus dados atuais podem ser atualizados ou até removidos."
+ show:
+ title: Importação em progresso
+ help: "Seu site está sendo atualizado pelo arquivo zip enviado. Irá demorar alguns segundos."
+ steps:
+ site: Informações do site
+ content_types: Tipos de Conteúdo customizados
+ assets: Arquivos do Tema
+ asset_collections: Coleções de Arquivos
+ snippets: Blocos
+ pages: Páginas
+ messages:
+ success: "Seu site foi atualizado com sucesso"
+ failure: "A importação não funcionou."
+
+ installation:
+ common:
+ title: Primeira instalação do Locomotive
+ next: Próximo
+ step_1:
+ title: Passo 1/3
+ explanations: "Este é o primeiro passo da instalação do Locomotive. Por favor , leia com atenção o que está escrito"
+ database:
+ label: "Nome da Base de Dados: %{name}"
+ notes: "Todas as configurações de conexão do mongodb podem ser encontradas no arquivo config/mongoid.yml da sua aplicação."
+ default_domain:
+ label: "Domínio padrão: %{name}"
+ notes: "Basicamente, Locomotive é uma plataforma multi-site. Cada instância de site tem uma entrada padrão, , também chamada de sub-domínio e baseada no dominio principal. Obviamente, você pode mapear outros domínios para a instância do seu site , como uma referência.
O nome do domínio principal pode ser encontrado no arquivo config/initializers/locomotive.rb."
+ step_2:
+ title: "Passo 2/3 — Criar conta"
+ name: Nome da Conta
+ email: Email
+ password: Senha
+ password_confirmation: Confirmação da Senha
+ done: "Você ja adicionou uma conta com:
%{name}, %{email}"
+ next: Criar Conta
+ step_3:
+ title: "Passo 3/3 — Criar primeiro site"
+ explanations: "Este é o último passo da instalação. Você pode enviar um tema como um arquivo zip. Nós temos alguns temas de graça para download aqui."
+ next: Criar Site
diff --git a/config/locales/carrierwave.pt-BR.yml b/config/locales/carrierwave.pt-BR.yml
new file mode 100644
index 00000000..61f9c3e9
--- /dev/null
+++ b/config/locales/carrierwave.pt-BR.yml
@@ -0,0 +1,4 @@
+pt-BR:
+ carrierwave:
+ errors:
+ integrity: 'não é um tipo de arquivo compatível.'
\ No newline at end of file
diff --git a/config/locales/default.pt-BR.yml b/config/locales/default.pt-BR.yml
new file mode 100644
index 00000000..2882a12e
--- /dev/null
+++ b/config/locales/default.pt-BR.yml
@@ -0,0 +1,214 @@
+pt-BR:
+ errors:
+ # The default format use in full error messages.
+ format: "%{attribute} %{message}"
+
+ messages:
+ inclusion: "não está incluído na lista"
+ exclusion: "não está disponível"
+ invalid: "não é válido"
+ confirmation: "não está de acordo com a confirmação"
+ accepted: "deve ser aceito"
+ empty: "não pode ficar vazio"
+ blank: "não pode ficar em branco"
+ too_long: "é muito longo (máximo: %{count} caracteres)"
+ too_short: "é muito curto (mínimo: %{count} caracteres)"
+ wrong_length: "não possui o tamanho esperado (%{count} caracteres)"
+ not_a_number: "não é um número"
+ not_an_integer: "não é um número inteiro"
+ greater_than: "deve ser maior do que %{count}"
+ greater_than_or_equal_to: "deve ser maior ou igual a %{count}"
+ equal_to: "deve ser igual a %{count}"
+ less_than: "deve ser menor do que %{count}"
+ less_than_or_equal_to: "deve ser menor ou igual a %{count}"
+ odd: "deve ser ímpar"
+ even: "deve ser par"
+
+ domain_taken: "%{value} já está em uso."
+ invalid_domain: "%{value} é inválido."
+ needs_admin_account: "Uma conta de administrador é necessário pelo menos."
+ protected_page: "Você não pode remover a página inicial e a do erro 404"
+ extname_changed: "Novo arquivos não tem a mesma extensão que o original"
+ array_too_short: "é muito pequeno (mínimo de elementos é %{count})"
+ liquid_syntax: "Erro de sintaxe do Liquid, por favor verifique a sintaxe"
+ liquid_extend: "A página extende um template que não existe."
+ invalid_theme_file: "não pode ser vazio ou não é um arquivo zip"
+
+
+ date:
+ formats:
+ default: "%d/%m/%Y"
+
+
+ attributes:
+ defaults:
+ pages:
+ index:
+ title: "Página Inicial"
+ body: "Conteúdo da página inicial"
+ "404":
+ title: "Página não encontrada"
+ body: "Conteúdo da página de erro 404"
+ other:
+ body: "Conteúdo vai aqui"
+
+ activemodel:
+ attributes:
+ page:
+ title: Título
+ parent: Pai
+ slug: Slug
+ templatized: Template
+ published: Publicado
+ cache_strategy: Cache
+ content_type:
+ name: Nome
+ description: Descrição
+ slug: Slug
+ order_by: Ordenar por
+ highlighted_field_name: Nome do Campo em destaque
+ group_by_field_name: Agrupar por name do campo
+ api_enabled: Activation API
+ asset_collection:
+ name: Nome
+ slug: Slug
+ asset:
+ name: Nome
+ source: Arquivo
+ account:
+ email: Email
+ name: Nome
+ language: Lingugaem
+ new_password: "Nova senha"
+ new_password_confirmation: "Confirmação da nova senha"
+ snippet:
+ body: Código
+ slug: slug
+ name: Nome
+ theme_asset:
+ content_type: Tipo de conteúdo
+ site:
+ name: Nome do Site
+ domain_name: Domínio
+ subdomain: Sub-domínio
+ restricted_access: Restrito ?
+ access_login: Login
+ access_password: "senha"
+
+ pagination:
+ previous: "« Anterior"
+ next: "Próximo »"
+
+ date:
+ formats:
+ default: "%d/%m/%Y"
+ short: "%e %b"
+ long: "%e %B %Y"
+ long_ordinal: "%e %B %Y"
+ only_day: "%e"
+
+ day_names: [Domingo, Segunda, Terça, Quarta, Quinta, Sexta, Sábado]
+ abbr_day_names: [Dom, Seg, Ter, Qua, Qui, Sex, Sáb]
+
+ month_names: [~, Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro]
+ abbr_month_names: [~, Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez]
+ order: [ :day, :month, :year ]
+
+
+ time:
+ formats:
+ default: "%d %B %Y %H:%M"
+ time: "%H:%M"
+ short: "%d %b %H:%M"
+ long: "%A %d %B %Y %H:%M:%S %Z"
+ long_ordinal: "%A %d %B %Y %H:%M:%S %Z"
+ only_second: "%S"
+ am: 'am'
+ pm: 'pm'
+
+ datetime:
+ distance_in_words:
+ half_a_minute: 'meio minuto'
+ less_than_x_seconds:
+ one: 'menos de 1 segundo'
+ other: 'menos de %{count} segundos'
+
+ x_seconds:
+ one: '1 segundo'
+ other: '%{count} segundos'
+
+ less_than_x_minutes:
+ one: 'menos de um minuto'
+ other: 'menos de %{count} minutos'
+
+ x_minutes:
+ one: '1 minuto'
+ other: '%{count} minutos'
+
+ about_x_hours:
+ one: 'aproximadamente 1 hora'
+ other: 'aproximadamente %{count} horas'
+
+ x_days:
+ one: '1 dia'
+ other: '%{count} dias'
+
+ about_x_months:
+ one: 'aproximadamente 1 mês'
+ other: 'aproximadamente %{count} meses'
+
+ x_months:
+ one: '1 mês'
+ other: '%{count} meses'
+
+ about_x_years:
+ one: 'aproximadamente 1 ano'
+ other: 'aproximadamente %{count} anos'
+
+ over_x_years:
+ one: 'mais de 1 ano'
+ other: 'mais de %{count} anos'
+
+ almost_x_years:
+ one: 'quase 1 ano'
+ other: 'quase %{count} anos'
+
+ prompts:
+ year: "Ano"
+ month: "Mês"
+ day: "Dia"
+ hour: "Hora"
+ minute: "Minuto"
+ second: "Segundos"
+
+
+ number:
+ format:
+ precision: 3
+ separator: ','
+ delimiter: '. '
+ currency:
+ format:
+ unit: 'R$'
+ precision: 2
+ format: '%n %u'
+ human:
+ format:
+ precision: 2
+ storage_units:
+ format: '%n %u'
+ units:
+ byte: 'Byte'
+ kb: 'Kb'
+ mb: 'Mb'
+ gb: 'Gb'
+ tb: 'Tb'
+
+ support:
+ array:
+ sentence_connector: ' e '
+ skip_last_comma: true
+ words_connector: ", "
+ two_words_connector: " e "
+ last_word_connector: " e "
+
\ No newline at end of file
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
new file mode 100644
index 00000000..6cff714d
--- /dev/null
+++ b/config/locales/devise.pt-BR.yml
@@ -0,0 +1,61 @@
+pt-BR:
+ errors:
+ messages:
+ not_found: "não encontrado"
+ already_confirmed: "já foi confirmado"
+ not_locked: "não está bloqueado"
+
+ devise:
+ failure:
+ admin:
+ unauthenticated: 'Você precisa se cadasstrar ou fazer o login antes de continuar.'
+ unconfirmed: 'Você deve confirmar sua conta antes de continuar.'
+ locked: 'Sua conta está bloquada.'
+ invalid: 'Email ou senha inválidos.'
+ invalid_token: 'Autenticação inválida.'
+ timeout: 'Sua sessão expirou. Por favor, faça o login novamente para continuar.'
+ inactive: 'Sua conta não foi ativada ainda.'
+ sessions:
+ admin:
+ signed_in: 'Login feito com sucesso.'
+ signed_out: 'Logout feito com sucesso.'
+ passwords:
+ admin:
+ send_instructions: 'Você receberá um email com as instruções sobre como alterar sua senha em poucos minutos.'
+ updated: 'Sua senha foi alterada com sucesso. Você está logado.'
+ confirmations:
+ admin:
+ send_instructions: 'Você receberá um email com as instruções sobre como confirmar sua conta em poucos minutos.'
+ confirmed: 'Sua conta foi confirmada com sucesso. Você está logado.'
+ registrations:
+ admin:
+ signed_up: 'Você logou com sucesso.'
+ updated: 'Atualização da conta feita com sucesso.'
+ destroyed: 'Sua conta foi cancelada com sucesso. Logo logo esperamos te ver por aqui. Tchau!'
+ unlocks:
+ admin:
+ send_instructions: 'Você receberá um email com as intruções de como desbloquear sua conta em poucos minutos.'
+ unlocked: 'Sua conta foi desbloqueada com sucesso. Você está logado.'
+ mailer:
+ admin:
+ confirmation_instructions: 'Instruções de confirmação'
+ reset_password_instructions: 'Instruções para resetar a senha.'
+ unlock_instructions: 'Instruções de desbloqueio'
+
+
+ admin:
+ mailer:
+ common:
+ hello: Olá
+ confirmation_instructions:
+ you_can_confirm_your_account_through_the_link_below: "Você pode confirmar sua conta através do link abaixo."
+ confirm_my_account: "Confirmar minha conta"
+ reset_password_instructions:
+ reset_password_instruction: "Alguém solicitou um link para alterar sua senha e você poderá fazer isto através do link abaixo:"
+ change_my_password: "Alterar minha senha"
+ wrong_request_instruction: "Se você não solicitou isto, por favor ignore este email."
+ unchange_password_message: "Sua senha não irá ser alterada até que você acesse o link acima e crie uma nova senha."
+ unlock_instructions:
+ locked_account_message: "Sua conta foi bloqueada devido a excessiva tentativa de logins sem sucesso."
+ unlock_account_instruction: "Clique no link abaixo para desbloquear sua conta:"
+ unlock_my_account: "Desbloquear minha conta"
\ No newline at end of file
diff --git a/config/locales/flash.pt-BR.yml b/config/locales/flash.pt-BR.yml
new file mode 100644
index 00000000..19971750
--- /dev/null
+++ b/config/locales/flash.pt-BR.yml
@@ -0,0 +1,116 @@
+pt-BR:
+ flash:
+ admin:
+ pages:
+ create:
+ notice: "Página criada com sucesso."
+ alert: "Página não foi criada."
+ update:
+ notice: "Página atualizada com sucesso."
+ alert: "Página não foi atualizada."
+ sort:
+ notice: "Páginas foram ordenadas com sucesso."
+ destroy:
+ notice: "Páginas foram apagadas com sucesso."
+
+ contents:
+ create:
+ notice: "Conteúdo criado com sucesso."
+ alert: "Conteúdo não foi criado."
+ update:
+ notice: "Conteúdo foi atualizado com sucesso."
+ alert: "Conteúdo não foi atualizado."
+ sort:
+ notice: "Conteúdos foram ordenados com sucesso."
+ destroy:
+ notice: "Conteúdos foram apagados com sucesso."
+
+ content_types:
+ create:
+ notice: "Modelo foi criado com sucesso."
+ alert: "Modelo não foi criado."
+ update:
+ notice: "Modelo foi atualizado com sucesso."
+ alert: "Modelo não foi atualizado."
+ destroy:
+ notice: "Modelo foi apagado com sucesso."
+
+ current_sites:
+ update:
+ notice: "Meu site foi atualizado com sucesso."
+ alert: "Meu site não foi atualizado."
+
+ snippets:
+ create:
+ notice: "Fragmento foi criado com sucesso."
+ alert: "Fragmento não foi criado."
+ update:
+ notice: "Fragmento foi atualizado com sucesso."
+ alert: "Fragmento não foi atualizado."
+ destroy:
+ notice: "Fragmento foi apagado com sucesso."
+
+ accounts:
+ create:
+ notice: "Conta foi criada com sucesso."
+ alert: "Conta não foi criada."
+
+ my_accounts:
+ update:
+ notice: "Minha conta foi atualizada com sucesso."
+ alert: "Minha conta não foi atualizada."
+
+ sites:
+ create:
+ notice: "Site foi criado com sucesso."
+ alert: "Site não foi criado com sucesso."
+ destroy:
+ notice: "Site foi apagado com sucesso."
+
+ memberships:
+ create:
+ notice: "Adesão foi criada com sucesso."
+ alert: "Adesão não foi criada."
+ already_created: "Conta já foi adicionada ao site atual."
+
+ asset_collections:
+ create:
+ notice: "Coleção criada com sucesso."
+ alert: "Coleção não foi criada."
+ update:
+ notice: "Coleção foi atualizada com sucesso."
+ alert: "Coleção não foi atualizada."
+ destroy:
+ notice: "Coleção foi apagada com sucesso."
+
+ assets:
+ create:
+ notice: "Asset foi criada com sucesso."
+ alert: "Asset não foi criada."
+ update:
+ notice: "Asset foi atualizada com sucesso."
+ alert: "Asset não foi atualizada."
+
+ theme_assets:
+ create:
+ notice: "Arquivo foi criado com sucesso."
+ alert: "Arquivo não foi criado."
+ update:
+ notice: "Arquivo foi atualizado com sucesso."
+ alert: "Arquivo não foi atualizado."
+ destroy:
+ notice: "Arquivo foi apagado com sucesso."
+
+ custom_fields:
+ update:
+ alert: "Campo não foi atualizado."
+
+ cross_domain_sessions:
+ create:
+ alert: "Você precisa fazer o login"
+
+ imports:
+ create:
+ done: "Seu site foi atualizado com sucesso."
+ notice: "Seu site está sento atualizado."
+ alert: "A importação não foi feita."
\ No newline at end of file
diff --git a/config/locales/formtastic.pt-BR.yml b/config/locales/formtastic.pt-BR.yml
new file mode 100644
index 00000000..9796246e
--- /dev/null
+++ b/config/locales/formtastic.pt-BR.yml
@@ -0,0 +1,66 @@
+pt-BR:
+ formtastic:
+ titles:
+ information: Informação geral
+ meta: SEO Metadata
+ code: Código
+ raw_template: Template
+ credentials: Credenciais
+ language: Língua
+ sites: Sites
+ access_points: Pontos de acesso
+ memberships: Contas
+ membership_email: Conta de email
+ file: Arquivo
+ preview: Pré-visualizar
+ options: Opções avançadas
+ custom_fields: Compos customizáveis
+ other_fields: Outras informações
+ presentation: Apresentação
+ attributes: Atributos
+ upload: Upload
+ labels:
+ theme_asset:
+ plain_text_name: Nome do arquivo
+ content_type: Tipo do arquivo
+ new:
+ source: Arquivo
+ edit:
+ source: Substituir arquivo
+ custom_fields:
+ field:
+ _alias: Apelido
+ import:
+ new:
+ source: Arquivo
+ samples: Amostras de cópia
+ reset: Reiniciar site
+ content_type:
+ api_accounts: Contas notificadas
+
+ hints:
+ page:
+ published: "Apenas contas autenticadas podem ver páginas não publicadas."
+ cache_strategy: 'Faça o Cache da página para obter melhor desempenho. A escolha do "Simples" é um bom compromisso'
+ templatized: "Utilize a página como template para o modelo definido."
+ snippet:
+ slug: "Você precisa saber a ordem para inserir fragmentos dentro da página."
+ site:
+ meta_keywords: "Palavras chave usadas dentro da tag 'head' da página. Elas são separadas por um espaço em branco. Requerido para SEO."
+ meta_description: "Descrição chave usada dentro da tag 'head' da página. Requerido para SEO."
+ domain_name: "ex: locomotiveapp.org"
+ theme_asset:
+ slug: "Você não precisa adicionar as extensões do arquivo (.css or .js)"
+ edit:
+ source: "Você pode substituir por um arquivo com a mesma extensão."
+ custom_fields:
+ field:
+ _alias: "Propriedades disponíveis em templates líquidos."
+ hint: "Texto mostrado no formulário de modelo está abaixo do campo."
+ import:
+ source: "Um arquivo .zip contendo um database.yml com assets and templates"
+ samples: "Se habilitado, a importação também irá copiar conteúdos e assets."
+ reset: "Se habilitado, todos os dados do site serão apagados antes da importação do novo site."
+ content_type:
+ api_enabled: "Ele é utilizado para permitir que pessoas de fora criem novas instâncias (exemplo: mensagens no formulário de contato)"
+ api_accounts: "Um email de notificação será enviado para conta listada acima quando uma nova instância for criada."
\ No newline at end of file
diff --git a/lib/generators/locomotive/install/templates/locomotive.rb b/lib/generators/locomotive/install/templates/locomotive.rb
index f93eaf05..9e00d5e9 100644
--- a/lib/generators/locomotive/install/templates/locomotive.rb
+++ b/lib/generators/locomotive/install/templates/locomotive.rb
@@ -35,7 +35,7 @@ Locomotive.configure do |config|
# If you do not mind about importing theme without DelayedJob, disable it.
config.delayed_job = false
- # default locale (for now, only en and fr are supported)
+ # default locale (for now, only en, fr and pt-BR are supported)
config.default_locale = :en
# Configure the e-mail address which will be shown in the DeviseMailer, NotificationMailer, ...etc
diff --git a/lib/locomotive/configuration.rb b/lib/locomotive/configuration.rb
index db5cb1cf..32f6d850 100644
--- a/lib/locomotive/configuration.rb
+++ b/lib/locomotive/configuration.rb
@@ -7,7 +7,7 @@ module Locomotive
:reserved_subdomains => %w{www admin email blog webmail mail support help site sites},
# :forbidden_paths => %w{layouts snippets stylesheets javascripts assets admin system api},
:reserved_slugs => %w{stylesheets javascripts assets admin images api pages edit},
- :locales => %w{en fr},
+ :locales => %w{en fr pt-BR},
:cookie_key => '_locomotive_session',
:enable_logs => false,
:heroku => false,
diff --git a/public/images/admin/icons/flags/pt-BR.png b/public/images/admin/icons/flags/pt-BR.png
new file mode 100644
index 00000000..2c4e4e71
Binary files /dev/null and b/public/images/admin/icons/flags/pt-BR.png differ
diff --git a/public/javascripts/admin/aloha/i18n/fr.dict b/public/javascripts/admin/aloha/i18n/fr.dict
index d605ec2c..b03b6f56 100644
--- a/public/javascripts/admin/aloha/i18n/fr.dict
+++ b/public/javascripts/admin/aloha/i18n/fr.dict
@@ -2,4 +2,6 @@ floatingmenu.tab.format=Mise en page
floatingmenu.tab.insert=Insertion
yes=Oui
no=Non
-cancel=Annuler
\ No newline at end of file
+cancel=Annuler
+repository.no_item_found=Aucun élément trouvé.
+repository.loading=Chargement
\ No newline at end of file
diff --git a/public/javascripts/admin/aloha/i18n/pt-BR.dict b/public/javascripts/admin/aloha/i18n/pt-BR.dict
new file mode 100644
index 00000000..676ad8af
--- /dev/null
+++ b/public/javascripts/admin/aloha/i18n/pt-BR.dict
@@ -0,0 +1,7 @@
+floatingmenu.tab.format=Formato
+floatingmenu.tab.insert=Inserir
+yes=Sim
+no=Não
+cancel=Cancelar
+repository.no_item_found=Nenhum item encotrado.
+repository.loading=Carregando
\ No newline at end of file
diff --git a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Format b/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Format
deleted file mode 160000
index c71edba4..00000000
--- a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Format
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c71edba41798a4be621197a7418747252884a34d
diff --git a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.HighlightEditables b/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.HighlightEditables
deleted file mode 160000
index 11d45d8d..00000000
--- a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.HighlightEditables
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 11d45d8df725f0e15501c1447975b84473b8c116
diff --git a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Link b/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Link
deleted file mode 160000
index a148845e..00000000
--- a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Link
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a148845e30f7a1f6aa2640d12070dbfa44773370
diff --git a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.List b/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.List
deleted file mode 160000
index ada3208a..00000000
--- a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.List
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit ada3208a19a31251ad0a58f136bbb09fea68fd70
diff --git a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.TOC b/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.TOC
deleted file mode 160000
index 7d622b36..00000000
--- a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.TOC
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7d622b36dc1501f993f39e74649fef64c403ba67
diff --git a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Table b/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Table
deleted file mode 160000
index e7153647..00000000
--- a/public/javascripts/admin/aloha/plugins/com.gentics.aloha.plugins.Table
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e71536475f32b7ee191087f76c2d7acbadad14be
diff --git a/public/javascripts/admin/inline_editor.js b/public/javascripts/admin/inline_editor.js
index 532557fb..29a85eab 100644
--- a/public/javascripts/admin/inline_editor.js
+++ b/public/javascripts/admin/inline_editor.js
@@ -25,6 +25,9 @@ if (typeof GENTICS != 'undefined') {
'.editable-short-text' : [ ]
}
}
+ },
+ i18n: {
+ available: ['en', 'fr', 'pt-BR']
}
};
@@ -36,7 +39,7 @@ jQuery(document).ready(function($) {
InlineEditorToolbar.initialize();
if (InlineEditorToolbar.editingMode) {
- GENTICS.Aloha.settings['i18n'] = { 'current': InlineEditorToolbar.locale };
+ GENTICS.Aloha.settings.i18n['current'] = InlineEditorToolbar.locale;
// add 'edit' at the end of each url of the page
$('a').each(function() {
diff --git a/public/javascripts/admin/inline_editor_toolbar.js b/public/javascripts/admin/inline_editor_toolbar.js
index c642711c..24c522bd 100644
--- a/public/javascripts/admin/inline_editor_toolbar.js
+++ b/public/javascripts/admin/inline_editor_toolbar.js
@@ -165,6 +165,14 @@ var InlineEditorToolbar = {
'cancel': 'annuler',
'back': 'fin mode edition',
'saving': 'sauvegarde en cours'
+ },
+ 'pt-BR': {
+ 'home': 'admin',
+ 'edit': 'editar',
+ 'save': 'salvar',
+ 'cancel': 'cancelar',
+ 'back': 'terminar edição',
+ 'saving': 'salvando'
}
}
};
\ No newline at end of file
diff --git a/public/javascripts/admin/locales/datepicker_pt-BR.js b/public/javascripts/admin/locales/datepicker_pt-BR.js
new file mode 100644
index 00000000..d19bc5a4
--- /dev/null
+++ b/public/javascripts/admin/locales/datepicker_pt-BR.js
@@ -0,0 +1,18 @@
+/* Brazilian Portuguese initialisation for the jQuery UI date picker plugin. */
+/* Written by Raphael Costa (raphael@experia.com.br) */
+jQuery(function($){
+ $.datepicker.regional['pt-BR'] = {
+ closeText: 'Fechar',
+ prevText: '<Ant',
+ nextText: 'Prox>',
+ currentText: 'Atual',
+ monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho',
+ 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
+ monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
+ 'Jul','Ago','Set','Out','Nov','Dez'],
+ dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],
+ dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
+ dayNamesMin: ['Do','Se','Te','Qua','Qu','Se','Sa'],
+ dateFormat: 'dd/mm/yy', firstDay: 1,
+ isRTL: false};
+});
\ No newline at end of file
diff --git a/public/javascripts/admin/plugins/tiny_mce/langs/pt-BR.js b/public/javascripts/admin/plugins/tiny_mce/langs/pt-BR.js
new file mode 100644
index 00000000..8021c701
--- /dev/null
+++ b/public/javascripts/admin/plugins/tiny_mce/langs/pt-BR.js
@@ -0,0 +1,170 @@
+tinyMCE.addI18n({en:{
+common:{
+edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?",
+apply:"Aplicar",
+insert:"Inserir",
+update:"Update",
+cancel:"Cancel",
+close:"Close",
+browse:"Browse",
+class_name:"Class",
+not_set:"-- Not set --",
+clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?",
+clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.",
+popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",
+invalid_data:"Error: Invalid values entered, these are marked in red.",
+more_colors:"More colors"
+},
+contextmenu:{
+align:"Alignment",
+left:"Left",
+center:"Center",
+right:"Right",
+full:"Full"
+},
+insertdatetime:{
+date_fmt:"%Y-%m-%d",
+time_fmt:"%H:%M:%S",
+insertdate_desc:"Insert date",
+inserttime_desc:"Insert time",
+months_long:"January,February,March,April,May,June,July,August,September,October,November,December",
+months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
+day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",
+day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"
+},
+print:{
+print_desc:"Print"
+},
+preview:{
+preview_desc:"Preview"
+},
+directionality:{
+ltr_desc:"Direction left to right",
+rtl_desc:"Direction right to left"
+},
+layer:{
+insertlayer_desc:"Insert new layer",
+forward_desc:"Move forward",
+backward_desc:"Move backward",
+absolute_desc:"Toggle absolute positioning",
+content:"New layer..."
+},
+save:{
+save_desc:"Save",
+cancel_desc:"Cancel all changes"
+},
+nonbreaking:{
+nonbreaking_desc:"Insert non-breaking space character"
+},
+iespell:{
+iespell_desc:"Run spell checking",
+download:"ieSpell not detected. Do you want to install it now?"
+},
+advhr:{
+advhr_desc:"Horizontal rule"
+},
+emotions:{
+emotions_desc:"Emotions"
+},
+searchreplace:{
+search_desc:"Find",
+replace_desc:"Find/Replace"
+},
+advimage:{
+image_desc:"Insert/edit image"
+},
+advlink:{
+link_desc:"Insert/edit link"
+},
+xhtmlxtras:{
+cite_desc:"Citation",
+abbr_desc:"Abbreviation",
+acronym_desc:"Acronym",
+del_desc:"Deletion",
+ins_desc:"Insertion",
+attribs_desc:"Insert/Edit Attributes"
+},
+style:{
+desc:"Edit CSS Style"
+},
+paste:{
+paste_text_desc:"Paste as Plain Text",
+paste_word_desc:"Paste from Word",
+selectall_desc:"Select All",
+plaintext_mode_sticky:"Paste is now in plain text mode. Click again to toggle back to regular paste mode. After you paste something you will be returned to regular paste mode.",
+plaintext_mode:"Paste is now in plain text mode. Click again to toggle back to regular paste mode."
+},
+paste_dlg:{
+text_title:"Use CTRL+V on your keyboard to paste the text into the window.",
+text_linebreaks:"Keep linebreaks",
+word_title:"Use CTRL+V on your keyboard to paste the text into the window."
+},
+table:{
+desc:"Inserts a new table",
+row_before_desc:"Insert row before",
+row_after_desc:"Insert row after",
+delete_row_desc:"Delete row",
+col_before_desc:"Insert column before",
+col_after_desc:"Insert column after",
+delete_col_desc:"Remove column",
+split_cells_desc:"Split merged table cells",
+merge_cells_desc:"Merge table cells",
+row_desc:"Table row properties",
+cell_desc:"Table cell properties",
+props_desc:"Table properties",
+paste_row_before_desc:"Paste table row before",
+paste_row_after_desc:"Paste table row after",
+cut_row_desc:"Cut table row",
+copy_row_desc:"Copy table row",
+del:"Delete table",
+row:"Row",
+col:"Column",
+cell:"Cell"
+},
+autosave:{
+unload_msg:"The changes you made will be lost if you navigate away from this page.",
+restore_content:"Restore auto-saved content.",
+warning_message:"If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?."
+},
+fullscreen:{
+desc:"Toggle fullscreen mode"
+},
+media:{
+desc:"Insert / edit embedded media",
+edit:"Edit embedded media"
+},
+fullpage:{
+desc:"Document properties"
+},
+template:{
+desc:"Insert predefined template content"
+},
+visualchars:{
+desc:"Visual control characters on/off."
+},
+spellchecker:{
+desc:"Toggle spellchecker",
+menu:"Spellchecker settings",
+ignore_word:"Ignore word",
+ignore_words:"Ignore all",
+langs:"Languages",
+wait:"Please wait...",
+sug:"Suggestions",
+no_sug:"No suggestions",
+no_mpell:"No misspellings found."
+},
+pagebreak:{
+desc:"Insert page break."
+},
+advlist:{
+types:"Types",
+def:"Default",
+lower_alpha:"Lower alpha",
+lower_greek:"Lower greek",
+lower_roman:"Lower roman",
+upper_alpha:"Upper alpha",
+upper_roman:"Upper roman",
+circle:"Circle",
+disc:"Disc",
+square:"Square"
+}}});
\ No newline at end of file
diff --git a/public/javascripts/admin/plugins/tiny_mce/themes/advanced/langs/pt-BR.js b/public/javascripts/admin/plugins/tiny_mce/themes/advanced/langs/pt-BR.js
new file mode 100644
index 00000000..52989e39
--- /dev/null
+++ b/public/javascripts/admin/plugins/tiny_mce/themes/advanced/langs/pt-BR.js
@@ -0,0 +1,62 @@
+tinyMCE.addI18n('en.advanced',{
+style_select:"Styles",
+font_size:"Font size",
+fontdefault:"Font family",
+block:"Format",
+paragraph:"Paragraph",
+div:"Div",
+address:"Address",
+pre:"Preformatted",
+h1:"Heading 1",
+h2:"Heading 2",
+h3:"Heading 3",
+h4:"Heading 4",
+h5:"Heading 5",
+h6:"Heading 6",
+blockquote:"Blockquote",
+code:"Code",
+samp:"Code sample",
+dt:"Definition term ",
+dd:"Definition description",
+bold_desc:"Bold (Ctrl+B)",
+italic_desc:"Italic (Ctrl+I)",
+underline_desc:"Underline (Ctrl+U)",
+striketrough_desc:"Strikethrough",
+justifyleft_desc:"Align left",
+justifycenter_desc:"Align center",
+justifyright_desc:"Align right",
+justifyfull_desc:"Align full",
+bullist_desc:"Unordered list",
+numlist_desc:"Ordered list",
+outdent_desc:"Outdent",
+indent_desc:"Indent",
+undo_desc:"Undo (Ctrl+Z)",
+redo_desc:"Redo (Ctrl+Y)",
+link_desc:"Insert/edit link",
+unlink_desc:"Unlink",
+image_desc:"Insert/edit image",
+cleanup_desc:"Cleanup messy code",
+code_desc:"Edit HTML Source",
+sub_desc:"Subscript",
+sup_desc:"Superscript",
+hr_desc:"Insert horizontal ruler",
+removeformat_desc:"Remove formatting",
+custom1_desc:"Your custom description here",
+forecolor_desc:"Select text color",
+backcolor_desc:"Select background color",
+charmap_desc:"Insert custom character",
+visualaid_desc:"Toggle guidelines/invisible elements",
+anchor_desc:"Insert/edit anchor",
+cut_desc:"Cut",
+copy_desc:"Copy",
+paste_desc:"Paste",
+image_props_desc:"Image properties",
+newdocument_desc:"New document",
+help_desc:"Help",
+blockquote_desc:"Blockquote",
+clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?",
+path:"Path",
+newdocument:"Are you sure you want clear all contents?",
+toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",
+more_colors:"More colors"
+});
\ No newline at end of file
diff --git a/public/javascripts/admin/plugins/tiny_mce/themes/advanced/langs/pt-BR_dlg.js b/public/javascripts/admin/plugins/tiny_mce/themes/advanced/langs/pt-BR_dlg.js
new file mode 100644
index 00000000..80e49419
--- /dev/null
+++ b/public/javascripts/admin/plugins/tiny_mce/themes/advanced/langs/pt-BR_dlg.js
@@ -0,0 +1,51 @@
+tinyMCE.addI18n('en.advanced_dlg',{
+about_title:"About TinyMCE",
+about_general:"About",
+about_help:"Help",
+about_license:"License",
+about_plugins:"Plugins",
+about_plugin:"Plugin",
+about_author:"Author",
+about_version:"Version",
+about_loaded:"Loaded plugins",
+anchor_title:"Insert/edit anchor",
+anchor_name:"Anchor name",
+code_title:"HTML Source Editor",
+code_wordwrap:"Word wrap",
+colorpicker_title:"Select a color",
+colorpicker_picker_tab:"Picker",
+colorpicker_picker_title:"Color picker",
+colorpicker_palette_tab:"Palette",
+colorpicker_palette_title:"Palette colors",
+colorpicker_named_tab:"Named",
+colorpicker_named_title:"Named colors",
+colorpicker_color:"Color:",
+colorpicker_name:"Name:",
+charmap_title:"Select custom character",
+image_title:"Insert/edit image",
+image_src:"Image URL",
+image_alt:"Image description",
+image_list:"Image list",
+image_border:"Border",
+image_dimensions:"Dimensions",
+image_vspace:"Vertical space",
+image_hspace:"Horizontal space",
+image_align:"Alignment",
+image_align_baseline:"Baseline",
+image_align_top:"Top",
+image_align_middle:"Middle",
+image_align_bottom:"Bottom",
+image_align_texttop:"Text top",
+image_align_textbottom:"Text bottom",
+image_align_left:"Left",
+image_align_right:"Right",
+link_title:"Insert/edit link",
+link_url:"Link URL",
+link_target:"Target",
+link_target_same:"Open link in the same window",
+link_target_blank:"Open link in a new window",
+link_titlefield:"Title",
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",
+link_list:"Link list"
+});
\ No newline at end of file
diff --git a/spec/factories.rb b/spec/factories.rb
index 17ce2dfc..9f9f253a 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -39,6 +39,12 @@ Factory.define "frenchy user", :parent => :account do |a|
a.locale 'fr'
end
+Factory.define "brazillian user", :parent => :account do |a|
+ a.name "José Carlos"
+ a.email "jose@carlos.com.br"
+ a.locale 'pt-BR'
+end
+
## Memberships ##
Factory.define :membership do |m|