# 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