Module: Redmine::I18n

Included in:
ApplicationController, ApplicationHelper, MailHandler, Mailer, QueryColumn, CustomFieldFormat, DefaultData::Loader, Export::PDF::IFPDF, Export::PDF::ITCPDF, Helpers::Calendar, Helpers::Gantt, Hook::Listener, MenuManager::MenuItem, TabularFormBuilder
Defined in:
lib/redmine/i18n.rb

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Object) included(base)



17
18
19
# File 'lib/redmine/i18n.rb', line 17

def self.included(base)
  base.extend Redmine::I18n
end

Instance Method Details

- (Object) current_language



89
90
91
# File 'lib/redmine/i18n.rb', line 89

def current_language
  ::I18n.locale
end

- (Object) day_name(day)



66
67
68
# File 'lib/redmine/i18n.rb', line 66

def day_name(day)
  ::I18n.t('date.day_names')[day % 7]
end

- (Object) find_language(lang)



78
79
80
81
# File 'lib/redmine/i18n.rb', line 78

def find_language(lang)
  @@languages_lookup = valid_languages.inject({}) {|k, v| k[v.to_s.downcase] = v; k }
  @@languages_lookup[lang.to_s.downcase]
end

- (Object) format_date(date)



52
53
54
55
# File 'lib/redmine/i18n.rb', line 52

def format_date(date)
  return nil unless date
  Setting.date_format.blank? ? ::I18n.l(date.to_date) : date.strftime(Setting.date_format)
end

- (Object) format_time(time, include_date = true)



57
58
59
60
61
62
63
64
# File 'lib/redmine/i18n.rb', line 57

def format_time(time, include_date = true)
  return nil unless time
  time = time.to_time if time.is_a?(String)
  zone = User.current.time_zone
  local = zone ? time.in_time_zone(zone) : (time.utc? ? time.localtime : time)
  (include_date ? "#{format_date(local)} " : "") +
    (Setting.time_format.blank? ? ::I18n.l(local, :format => :time) : local.strftime(Setting.time_format))
end

- (Object) l(*args)



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/redmine/i18n.rb', line 21

def l(*args)
  case args.size
  when 1
    ::I18n.t(*args)
  when 2
    if args.last.is_a?(Hash)
      ::I18n.t(*args)
    elsif args.last.is_a?(String)
      ::I18n.t(args.first, :value => args.last)
    else
      ::I18n.t(args.first, :count => args.last)
    end
  else
    raise "Translation string with multiple values: #{args.first}"
  end
end

- (Object) l_hours(hours)



43
44
45
46
# File 'lib/redmine/i18n.rb', line 43

def l_hours(hours)
  hours = hours.to_f
  l((hours < 2.0 ? :label_f_hour : :label_f_hour_plural), :value => ("%.2f" % hours.to_f))
end

- (Object) l_or_humanize(s, options = {})



38
39
40
41
# File 'lib/redmine/i18n.rb', line 38

def l_or_humanize(s, options={})
  k = "#{options[:prefix]}#{s}".to_sym
  ::I18n.t(k, :default => s.to_s.humanize)
end

- (Object) ll(lang, str, value = nil)



48
49
50
# File 'lib/redmine/i18n.rb', line 48

def ll(lang, str, value=nil)
  ::I18n.t(str.to_s, :value => value, :locale => lang.to_s.gsub(%r{(.+)\-(.+)$}) { "#{$1}-#{$2.upcase}" })
end

- (Object) month_name(month)



70
71
72
# File 'lib/redmine/i18n.rb', line 70

def month_name(month)
  ::I18n.t('date.month_names')[month]
end

- (Object) set_language_if_valid(lang)



83
84
85
86
87
# File 'lib/redmine/i18n.rb', line 83

def set_language_if_valid(lang)
  if l = find_language(lang)
    ::I18n.locale = l
  end
end

- (Object) valid_languages



74
75
76
# File 'lib/redmine/i18n.rb', line 74

def valid_languages
  @@valid_languages ||= Dir.glob(File.join(RAILS_ROOT, 'config', 'locales', '*.yml')).collect {|f| File.basename(f).split('.').first}.collect(&:to_sym)
end