diff -upr plugin.old/category.rb plugin.new/category.rb
--- plugin.old/category.rb	2009-05-08 18:46:29.000000000 +0900
+++ plugin.new/category.rb	2009-08-02 22:25:21.000000000 +0900
@@ -72,14 +72,14 @@ end
 
 def category_navi
 	mobile = @conf.mobile_agent?
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	mode = info.mode
 
 	result = ''
 	case mode
 	when :year, :half, :quarter, :month
-		all_diary = Category::Info.new(@cgi, @years, @conf, :year => -1, :month => -1)
-		all = Category::Info.new(@cgi, @years, @conf, :category => ['ALL'], :year => -1, :month => -1)
+		all_diary = Category::Info.new(@cgi, @years, @conf, @categories, :year => -1, :month => -1)
+		all = Category::Info.new(@cgi, @years, @conf, @categories, :category => ['ALL'], :year => -1, :month => -1)
 		result << category_navi_anchor(info.prev, @conf['category.prev_' + mode.to_s], mobile)
 		result << category_navi_anchor(info.next, @conf['category.next_' + mode.to_s], mobile)
 		unless mobile then
@@ -87,24 +87,24 @@ def category_navi
 			result << category_navi_anchor(all, @conf['category.all'])
 		end
 	when :all
-		year = Category::Info.new(@cgi, @years, @conf, :year => Time.now.year.to_s)
-		half = Category::Info.new(@cgi, @years, @conf, :year => Time.now.year.to_s, :month => "#{((Time.now.month - 1) / 6 + 1)}H")
-		quarter = Category::Info.new(@cgi, @years, @conf, :year => Time.now.year.to_s, :month => "#{((Time.now.month - 1) / 3 + 1)}Q")
-		month = Category::Info.new(@cgi, @years, @conf, :year => Time.now.year.to_s, :month => '%02d' % Time.now.month)
+		year = Category::Info.new(@cgi, @years, @conf, @categories, :year => Time.now.year.to_s)
+		half = Category::Info.new(@cgi, @years, @conf, @categories, :year => Time.now.year.to_s, :month => "#{((Time.now.month - 1) / 6 + 1)}H")
+		quarter = Category::Info.new(@cgi, @years, @conf, @categories, :year => Time.now.year.to_s, :month => "#{((Time.now.month - 1) / 3 + 1)}Q")
+		month = Category::Info.new(@cgi, @years, @conf, @categories, :year => Time.now.year.to_s, :month => '%02d' % Time.now.month)
 		result << category_navi_anchor(year, @conf['category.this_year'], mobile)
 		result << category_navi_anchor(half, @conf['category.this_half'], mobile)
 		result << category_navi_anchor(quarter, @conf['category.this_quarter'], mobile)
 		result << category_navi_anchor(month, @conf['category.this_month'], mobile)
 	end
 	if !info.category.include?('ALL') and !mobile then
-		all_category = Category::Info.new(@cgi, @years, @conf, :category => ['ALL'])
+		all_category = Category::Info.new(@cgi, @years, @conf, @categories, :category => ['ALL'])
 		result << category_navi_anchor(all_category, @conf['category.all_category'])
 	end
 	result
 end
 
 def category_list_sections
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	category = info.category
 	years = info.years
 	r = ''
@@ -140,7 +140,7 @@ HTML
 end
 
 def category_list_sections_mobile
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	category = info.category
 	years = info.years
 	r = ''
@@ -163,7 +163,7 @@ def category_list_sections_mobile
 end
 
 def category_list
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	@categories.map do |c|
 		info.category = c
 		info.make_anchor
@@ -174,7 +174,7 @@ def category_dropdown_list(label = nil, 
 	label ||= 'Categorize!'
 	multiple ||= false
 
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	category = info.category
 	if category.empty?
 		return '' if @conf.mobile_agent?
@@ -232,11 +232,15 @@ end
 class Info
 	include ERB::Util
 
-	def initialize(cgi, years, conf, args = {})
+	def initialize(cgi, years, conf, categories, args = {})
 		@cgi = cgi
 		@years = years
 		@conf = conf
-		@category = args[:category] || @cgi.params['category']
+		@categories = categories
+		@category = args[:category] || @cgi.params['category'].map {|c|
+			c2 = @conf.to_native(c, @conf.encoding_old)
+			@categories.include?(c2) ? c2 : c
+		}
 		@year = args[:year] || @cgi.params['year'][0]
 		@month = args[:month] || @cgi.params['month'][0]
 		@mode = :all
@@ -761,7 +765,7 @@ end
 
 @categories = @category_cache.restore_categories
 if @mode == 'categoryview'
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	@categorized = @category_cache.categorize(info.category, info.years)
 end
 
diff -upr plugin.old/en/category.rb plugin.new/en/category.rb
--- plugin.old/en/category.rb	2009-05-08 18:46:29.000000000 +0900
+++ plugin.new/en/category.rb	2009-08-02 22:23:19.000000000 +0900
@@ -5,7 +5,7 @@
 #
 
 def category_title
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	mode = info.mode
 	case mode
 	when :year
diff -upr plugin.old/ja/category.rb plugin.new/ja/category.rb
--- plugin.old/ja/category.rb	2009-05-08 18:46:17.000000000 +0900
+++ plugin.new/ja/category.rb	2009-08-02 22:23:04.000000000 +0900
@@ -5,7 +5,7 @@
 #
 
 def category_title
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	mode = info.mode
 	case mode
 	when :year
diff -upr plugin.old/zh/category.rb plugin.new/zh/category.rb
--- plugin.old/zh/category.rb	2009-05-08 18:46:25.000000000 +0900
+++ plugin.new/zh/category.rb	2009-08-02 22:23:35.000000000 +0900
@@ -5,7 +5,7 @@
 #
 
 def category_title
-	info = Category::Info.new(@cgi, @years, @conf)
+	info = Category::Info.new(@cgi, @years, @conf, @categories)
 	mode = info.mode
 	case mode
 	when :year
