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

8 de janeiro de 2009  |  Rails 2.3  | 

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.



3 Comentários


  1. Ahh.. me fez lembrar das minhas aulas básicas de japones agora :)

    Really cool. De alguma forma, se estivéssemos programando em português, já iríamos transformar aquela variável ‘name’ em ‘nome’. Mas no ex. em japones ela não é ‘namae’. Assim o código fica todo em ingles, seguindo a sugestão do Akita ;)

    Não que isso tenha algo à ver com o separator. Enfim..

  2. Exato. Para mostrar como internacionalizar e localizar são diferentes e importantes. O problema maior é separar o 名前 do を, esses não podem ficar separados. Alguém já discutiu o que acontece em linguagens que se lêem da direita para a esquerda como árabe?

  3. Hmm… nunca vi ninguém comentando sobre escrita da direita para a esquerda. Agora fiquei curioso.

Deixe um comentário