    # File lib/gettext/core_ext/string.rb, line 53
      def %(args)
        if args.kind_of?(Hash)
          ret = dup
          ret.gsub!(PERCENT_MATCH_RE) {|match|
            if match == '%%'
              '%'
            elsif $1
              key = $1.to_sym
              args.has_key?(key) ? args[key] : match
            elsif $2
              key = $2.to_sym
              args.has_key?(key) ? sprintf("%#{$3}", args[key]) : match
            end
          }
          ret
        else
          ret = gsub(/%([{<])/, '%%\1')
          begin
            ret._old_format_m(args)
          rescue ArgumentError => e
            if $DEBUG
              $stderr.puts "  The string:#{ret}"
              $stderr.puts "  args:#{args.inspect}"
              puts e.backtrace
            else
              raise ArgumentError, e.message
            end
          end
        end
      end