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?
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..
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?
Hmm… nunca vi ninguém comentando sobre escrita da direita para a esquerda. Agora fiquei curioso.