[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:02258] Re: gemcal on gtk2
On December 18, 2006, [mhc:02240],
nom (at quickhack.net) wrote:
> mhc-kconv のパッチを取り込んだので,today の画面表示が
> 環境に関わらず UTF-8 になってしまっています.
mhc-gtkではUTF-8固定にしつつ、ほかではlocaleに応じた表示になるといい
のでしょうね。下記のパッチでeucJP, SJIS, UTF-8 localeに対応できるもの
と思います。いかがでしょうか。
(mhc-gtkでMhcKconv::todispを再定義するのではなく、mhc-gtk専用に別の
関数を用意する方がいいのかもしれませんが、とりあえず、元のコードに
沿った形にしてみました)
----
--- mhc.orig/ruby-ext/lib/mhc-gtk.rb.in
+++ mhc/ruby-ext/lib/mhc-gtk.rb.in
@@ -17,13 +17,10 @@
require 'mhc-signal'
module MhcKconv
- if RUBY_PLATFORM =~ /mswin32|cygwin|mingw/
- require 'uconv'
- def todisp(string)
- Uconv::euctou8(Kconv::toeuc(string))
- end
- module_function :todisp
+ def todisp(string)
+ Kconv::kconv(string, Kconv::UTF8, Kconv::AUTO)
end
+ module_function :todisp
end
Gtk.init
--- mhc.orig/ruby-ext/lib/mhc-kconv.rb
+++ mhc/ruby-ext/lib/mhc-kconv.rb
@@ -9,7 +9,14 @@
require 'kconv'
module MhcKconv
- DISP_CODE = Kconv::UTF8
+ env = ENV['LC_ALL'] || ENV['LC_CTYPE'] || ENV['LANG']
+ if env =~ /euc/i
+ DISP_CODE = Kconv::EUC
+ elsif env =~ /sjis|shift_jis/i
+ DISP_CODE = Kconv::SJIS
+ else
+ DISP_CODE = Kconv::UTF8
+ end
def todisp(string)
Kconv::kconv(string, DISP_CODE, Kconv::AUTO)
----
--
木下達也