# File lib/gettext.rb, line 85
  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] = TextDomainManager.output_charset if TextDomainManager.output_charset
    opt[:locale].charset = opt[:charset] if opt[:charset]
    Locale.set_current(opt[:locale])
    target_key = bound_target
    manager = @@__textdomainmanagers[target_key]
    if manager
      manager.set_locale(opt[:locale]) 
    else
      manager = TextDomainManager.new(target_key, opt[:locale])
      @@__textdomainmanagers[target_key] = manager
    end
    manager.add_textdomain(domainname, opt)
    manager
  end