def bindtextdomain(domainname, options = {}, locale_ = nil, charset = nil)
opt = {}
if options.kind_of? String
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