=begin
使い方はApRBBR::MessageやExtraDialog::Messageを
見てもらえば、分かると思います。

他国語化の枠組みが今のApolloには存在しないみたいなので、
このモジュールを作成しました。
=end

require 'phi'

module SimpleI18N
  
  # 色んな所で何回もrequireされるから
  unless SimpleI18N.const_defined?(:LANG_EN)
    LANG_EN = 0
    LANG_JA = 1
  end

  def get_env_lang
    if ENV['LANG'].nil?
      LANG_EN
    else
      case ENV['LANG']
      when /^ja/
	LANG_JA
      else
	LANG_EN
      end
    end
  end

  module_function :get_env_lang

  unless SimpleI18N.const_defined?(:WINDOWS)
    # 将来もこれで良いか?
    if /.*mswin32/ =~ PLATFORM
      WINDOWS = true
    else
      WINDOWS = false
    end
  end

  if WINDOWS
    def get_win_lang
      case Phi::LANG
      when 17 #japan?
	LANG_JA
      else
	LANG_EN
      end
    end

    module_function :get_win_lang   
  end


  # LANGの設定
  # ja_JP.sjisとか考慮してないし(ぉ
  unless SimpleI18N.const_defined?(:LANG)
    if SimpleI18N.respond_to?(:get_win_lang)
      LANG = SimpleI18N::get_win_lang
    else
      LANG = SimpleI18N::get_env_lang
    end
  end

  # どうしたものかなあ
  def conv_kchar(str)
    if SimpleI18N::WINDOWS
      Kconv::tosjis(str)
    else
      Kconv::toeuc(str)
    end
  end

  module_function :conv_kchar
  
  class Message

    # 色んな所で何回もrequireされるから
    if Message.method_defined?(:initialize)
      undef initialize
    end

    # 再定義されることを期待
    def self.get_message(lang)
      []
    end

    def self.instance
      @msg
    end

    # SimpleI18N::Messageを継承したクラスが定義されるときに
    # @msgに実際のメッセージを代入して欲しい。
    @msg = []
    
  end

end
