diff options
Diffstat (limited to 'lib/redmine')
-rw-r--r-- | lib/redmine/i18n.rb | 12 | ||||
-rw-r--r-- | lib/redmine/utils.rb | 21 |
2 files changed, 31 insertions, 2 deletions
diff --git a/lib/redmine/i18n.rb b/lib/redmine/i18n.rb index 0091186f4..b028e3e30 100644 --- a/lib/redmine/i18n.rb +++ b/lib/redmine/i18n.rb @@ -52,8 +52,16 @@ module Redmine "%.2f h" % hours.to_f end - def ll(lang, str, value=nil) - ::I18n.t(str.to_s, :value => value, :locale => lang.to_s.gsub(%r{(.+)\-(.+)$}) { "#{$1}-#{$2.upcase}" }) + def ll(lang, str, arg=nil) + options = arg.is_a?(Hash) ? arg : {:value => arg} + locale = lang.to_s.gsub(%r{(.+)\-(.+)$}) { "#{$1}-#{$2.upcase}" } + ::I18n.t(str.to_s, options.merge(:locale => locale)) + end + + # Localizes the given args with user's language + def lu(user, *args) + lang = user.try(:language) || Setting.default_language + ll(lang, *args) end def format_date(date) diff --git a/lib/redmine/utils.rb b/lib/redmine/utils.rb index 56350052f..ed27d7e84 100644 --- a/lib/redmine/utils.rb +++ b/lib/redmine/utils.rb @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +require 'fileutils' + module Redmine module Utils class << self @@ -40,6 +42,25 @@ module Redmine def random_hex(n) SecureRandom.hex(n) end + + def save_upload(upload, path) + directory = File.dirname(path) + unless File.exists?(directory) + FileUtils.mkdir_p directory + end + File.open(path, "wb") do |f| + if upload.respond_to?(:read) + buffer = "" + while (buffer = upload.read(8192)) + f.write(buffer) + yield buffer if block_given? + end + else + f.write(upload) + yield upload if block_given? + end + end + end end module Shell |