Loads translation messages from locale_directory/+@name+/rdoc.po
or locale_directory/+@name+.po. The former has high priority.
This method requires gettext gem for parsing .po file. If you don’t have
gettext gem, this method doesn’t load .po file. This method warns and
returns false.
Returns true if succeeded, false otherwise.
# File lib/rdoc/i18n/locale.rb, line 62
def load(locale_directory)
return false if @name.nil?
po_file_candidates = [
File.join(locale_directory, @name, 'rdoc.po'),
File.join(locale_directory, "#{@name}.po"),
]
po_file = po_file_candidates.find do |po_file_candidate|
File.exist?(po_file_candidate)
end
return false unless po_file
begin
require 'gettext/po_parser'
require 'gettext/mo'
rescue LoadError
warn('Need gettext gem for i18n feature:')
warn(' gem install gettext')
return false
end
po_parser = GetText::POParser.new
messages = GetText::MO.new
po_parser.report_warning = false
po_parser.parse_file(po_file, messages)
@messages.merge!(messages)
true
end