Carlos Brando

Nome do Jogo

Edge Rails: Definindo o separador de palavras em mensagens de erro

Este novo recurso acrescentado ao Rails dificilmente será usado por nós, mas vale a pela curiosidade. Foi acrescentado ao ActiveRecord um novo parâmetro de configuração para internacionalização que permite definir o separador de palavras em mensagens de erro.

Como?

No inglês e no português não faz o menor sentido, mas pegue o seguinte arquivo de internacionalização criado para um projeto em japonês:

ja-JP:
  activerecord:
    models:
      user: ユーザー
    attributes:
      user:
        name: 名前
    errors:
      messages:
        blank: を入力してください。

Quando o atributo name do objeto User estiver em branco a seguinte mensagem será devolvida pelo AR:

名前 を入力してください。

Talvez você não tenha percebido mas existe um espaço em branco entre o nome do atributo e a mensagem de erro, o que não está certo no japonês, onde as palavras normalmente não são separadas por espaços.

Com este novo recurso um Railer japonês pode configurar em seu arquivo:

ja-JP:
  activerecord:
    errors:
      format:
        # Sets the separator between the words
        separator: ""

E ter seguinte mensagem de erro sem espaços separando as palavras:

名前を入力してください。

Curioso ou não?


Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.3/3.0 ou superior. Você pode encontrar mais detalhes sobre esta e outras novidades acompanhando a série Edge Rails.

Comments