will_paginateの日本語化

Pocket
LINEで送る

この記事の所要時間: 348

initializersの下に以下の内容の適当なファイルを入れておきます。

[code lang=”ruby”]
# will_paginateで出力されるページネーションの日本語化
WillPaginate::ViewHelpers.pagination_options = {
:class => ‘pagination’,
:previous_label => ‘«前へ’,
:next_label => ‘次へ»’,
:inner_window => 4, # links around the current page
:outer_window => 1, # links around beginning and end
:separator => ‘ ‘, # single space is friendly to spiders and non-graphic browsers
:param_name => :page,
:params => nil,
:renderer => ‘WillPaginate::ViewHelpers::LinkRenderer’,
:page_links => true,
:container => true
}

# エントリー情報を日本語化
module WillPaginate::ViewHelpers::Base
def page_entries_info(collection, options = {})
entry_name = options[:entry_name] || (collection.empty?? ‘entry’ :
collection.first.class.name.underscore.gsub(‘_’, ‘ ‘))

plural_name = if options[:plural_name]
options[:plural_name]
elsif entry_name == ‘entry’
plural_name = ‘entries’
elsif entry_name.respond_to? :pluralize
plural_name = entry_name.pluralize
else
entry_name + ‘s’
end

unless options[:html] == false
b = ‘<b>’
eb = ‘</b>’
sp = ‘ ‘
else
b = eb = ”
sp = ‘ ‘
end

if collection.total_pages < 2
case collection.size
when 0; "#{plural_name}は見つかりませんでした。"
when 1; "#{b}1#{eb} 件の#{entry_name}が見つかりました。"
else; "#{b}#{collection.size}#{eb} 件の#{plural_name}を表示しています。"
end
else
%{#{b}%d#{eb} 件中 #{b}%d#{sp}-#{sp}%d#{eb} 番目までの#{plural_name}を表示しています。} % [
collection.total_entries,
collection.offset + 1,
collection.offset + collection.length,
]
end
end
end
[/code]

ビューにはこんな感じで書きます。

<%= page_entries_info @items, :entry_name => '1つだけ見つかったときのエントリ名', :plural_name => '複数見つかったときのエントリ名' %>
<%= will_paginate @items %>

投稿者紹介

株式会社ユニキャスト
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

人気の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP

%d人のブロガーが「いいね」をつけました。