    # 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