# File lib/gettext.rb, line 56
  def bindtextdomain(domainname, options = {}, locale_ = nil, charset = nil)
    opt = {}
    if options.kind_of? String
      # For backward compatibility
      opt = {:path => options, :locale => locale_, :charset => charset}
    elsif options
      opt = options
    end
    opt[:locale] = opt[:locale] ? Locale::Object.new(opt[:locale]) : Locale.get
    opt[:charset] = output_charset if output_charset
    locale.charset = opt[:charset] if opt[:charset]
    Locale.set_current(opt[:locale])
    manager = @@__textdomainmanagers[bound_target]
    if manager
      manager.set_locale(opt[:locale]) 
    else
      manager = TextDomainManager.new(bound_target, opt[:locale])
      @@__textdomainmanagers[bound_target] = manager
    end
    manager.add_textdomain(domainname, opt)
    manager
  end