Posts Tagged ‘default_locale’

Ruby on Rails conversão de datas com I18n

Postado em 09 nov 2009
Categoria(s) Ruby on Rails

Eu estou desenvolvendo uma aplicação que precisa trabalhar com datas com I18n e fazer conversões para salvar a data no banco de dados e exibir para o usuário de acordo com o seu idioma.

Eu estou usando o Date Picker do jQuery em um campo do tipo text_field.

datepicker

Vou mostrar um esboço de como eu fiz isso, em primeiro lugar eu defini no arquivo config/environment.rb o idioma:

config.i18n.default_locale = 'pt-BR'

Depois eu defini no arquivo config/locales/pt-BR.yml os formatos de data:

pt-BR:
  date:
    formats:
      default: "%d/%m/%Y"
      short: "%d de %B"
      long: "%d de %B de %Y"
 
    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 ]

No meu formulário eu deixei assim:

<% content_for :javascripts do %>
  <%= include_jquery %>
  <%= javascript_include_tag "jquery.maskedinput-1.2.2.min" %>
  <% javascript_tag do %>
    $(document).ready(function() {
      // Adiciona date picker ao campo data de nascimento
      $.datepicker.setDefaults($.extend({showMonthAfterYear: false}, $.datepicker.regional['<%= I18n.locale %>']));
      $("#investor_date_of_birth").datepicker({
        showOn: 'both',
        buttonImage: '/images/calendar.gif',
        buttonImageOnly: false,
        buttonText: '<%= t('ui.admin.crud.datepicker_button_text') %>',
        changeMonth: true,
        changeYear: true,
        yearRange: '1900:<%= Time.now.year %>'
      });
 
      // Adiciona mascara ao campo data de nascimento
      $("#investor_date_of_birth").mask("99/99/9999");
    });
  <% end %>
<% end %>
 
<% form_for [:admin, @investor] do |f| -%>
  <%= f.error_messages %>
 
  <%= f.label :date_of_birth %>
 
  <% if @investor.new_record? %>
    <%= f.text_field :date_of_birth, :class => "smallInput" %>
  <% else %>
    <%= f.text_field :date_of_birth, :value => l(@investor.date_of_birth, :format => :default), :class => "smallInput" %>
  <% end %>
<% end %>

Caso exista o registro é realizado a conversão para exibir a data corretamente no formulário, não é necessário fazer conversão para salvar no banco de dados, o Rails já faz isso automaticamente.

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark

Ruby on Rails Authlogic com I18n para pt-BR

Postado em 01 set 2009
Categoria(s) Ruby on Rails

Para traduzir as mensagens, campos e modelos do Authlogic para pt-BR basta seguir os passos abaixo:

1) Define o default_locale para pt-BR

Abra o arquivo config/environment.rb, descomente a linha e define o idioma para pt-BR:

...
  # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')]
  config.i18n.default_locale = 'pt-BR'
end

2) Crie o arquivo pt-BR.yml

Dentro do diretório config/locales crie o arquivo pt-BR.yml, e adicione o seguinte conteúdo:

pt-BR:
  # Authlogic
  authlogic:
    error_messages:
      login_blank: "não pode ficar em branco"
      login_not_found: "não é válido"
      login_invalid: "deve usar somente letras, números, espaços e .-_@ por favor."
      consecutive_failed_logins_limit_exceeded: "Consecutivos logins que falharam limite excedido, a conta está desativada."
      email_invalid: "deve ser semelhante a um endereço de email."
      password_blank: "não pode ficar em branco"
      password_invalid: "não é válido"
      not_active: "Sua conta não está ativa"
      not_confirmed: "Sua conta não está confirmada"
      not_approved: "Sua conta não foi aprovada"
      no_authentication_details: "Você não forneceu nenhum detalhe para autenticação."
    models:
      user_session: "SessãoUsuário"
    attributes:
      user_session:
        login: "Usuário"
        email: "Email"
        password: "Senha"
        remember_me: "Lembrar me"

3) Reinicie a aplicação

Para garantir que todas as novas configurações sejam carregadas reinicie o servidor web.

4) Opcional: Instale o plugin para traduzir os labels dos formulários

./script/plugin install git://github.com/iain/i18n_label.git

Pronto!

Uma outra sugestão de leitura é: http://blog.patrickespake.com/2009/01/31/ruby-on-rails-22-como-usar-i18n-traduzir-as-mensagens-de-validacao-do-model-e-atributos-do-model/.

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark