# File lib/gettext.rb, line 470
  def set_locale(locale, this_target_only = false)
    ret = nil
    if locale
      if locale.kind_of? Locale::Object
        ret = locale
      else
        ret = Locale::Object.new(locale.to_s)
      end
      ret.charset = TextDomainManager.output_charset if TextDomainManager.output_charset
      Locale.set(ret)
    else
      Locale.set(nil)
      ret = Locale.get
    end
    if this_target_only
      manager = @@__textdomainmanagers[bound_target]
      if manager
        manager.set_locale(ret, ! cached?)
      end
    else
      each_textdomain {|textdomain|
        textdomain.set_locale(ret, ! cached?)
      }
    end
    self
  end