gettext の _('...') をエレガントに書く方法
gettext を使うと、_('...') というのを頻繁に書く。これをもっとエレガントに書くにはどうしたらいいか。
なんてことはない。Ruby ではメソッド呼び出しのカッコは省略できるから _('...') は _ '...' と書け、この場合ならスペースも省略できるので _'...' と書ける。だからたとえば
<h1><%= _('title') %></h1> <p><%= _('hello') %>, <%=h @name %>!</p>
というのは
<h1><%= _'title' %></h1> <p><%= _'hello' %>, <%=h @name %>!</p>
と書ける。もちろん、h() と同じように
<h1><%=_ 'title' %></h1> <p><%=_ 'hello' %>, <%=h @name %>!</p>
と書いてもオッケーだし、スペースを取っ払って
<h1><%=_'title'%></h1> <p><%=_'hello'%>, <%=h @name %>!</p>
でも問題ない。
_'...' という書き方はリテラルではなくあくまで関数呼び出してはあるけど、見た目だけなら Python の u'...' や r'...' というリテラルの書き方に似ている。