summaryrefslogtreecommitdiff
path: root/ruby_2_2/lib/rdoc/i18n
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_2_2/lib/rdoc/i18n')
-rw-r--r--ruby_2_2/lib/rdoc/i18n/locale.rb101
-rw-r--r--ruby_2_2/lib/rdoc/i18n/text.rb125
2 files changed, 0 insertions, 226 deletions
diff --git a/ruby_2_2/lib/rdoc/i18n/locale.rb b/ruby_2_2/lib/rdoc/i18n/locale.rb
deleted file mode 100644
index e98732e086..0000000000
--- a/ruby_2_2/lib/rdoc/i18n/locale.rb
+++ /dev/null
@@ -1,101 +0,0 @@
-##
-# A message container for a locale.
-#
-# This object provides the following two features:
-#
-# * Loads translated messages from .po file.
-# * Translates a message into the locale.
-
-class RDoc::I18n::Locale
-
- @@locales = {} # :nodoc:
-
- class << self
-
- ##
- # Returns the locale object for +locale_name+.
-
- def [](locale_name)
- @@locales[locale_name] ||= new(locale_name)
- end
-
- ##
- # Sets the locale object for +locale_name+.
- #
- # Normally, this method is not used. This method is useful for
- # testing.
-
- def []=(locale_name, locale)
- @@locales[locale_name] = locale
- end
-
- end
-
- ##
- # The name of the locale. It uses IETF language tag format
- # +[language[_territory][.codeset][@modifier]]+.
- #
- # See also {BCP 47 - Tags for Identifying
- # Languages}[http://tools.ietf.org/rfc/bcp/bcp47.txt].
-
- attr_reader :name
-
- ##
- # Creates a new locale object for +name+ locale. +name+ must
- # follow IETF language tag format.
-
- def initialize(name)
- @name = name
- @messages = {}
- end
-
- ##
- # 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.
-
- 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
-
- ##
- # Translates the +message+ into locale. If there is no tranlsation
- # messages for +message+ in locale, +message+ itself is returned.
-
- def translate(message)
- @messages[message] || message
- end
-
-end
diff --git a/ruby_2_2/lib/rdoc/i18n/text.rb b/ruby_2_2/lib/rdoc/i18n/text.rb
deleted file mode 100644
index ee5c66a1ff..0000000000
--- a/ruby_2_2/lib/rdoc/i18n/text.rb
+++ /dev/null
@@ -1,125 +0,0 @@
-##
-# An i18n supported text.
-#
-# This object provides the following two features:
-#
-# * Extracts translation messages from wrapped raw text.
-# * Translates wrapped raw text in specified locale.
-#
-# Wrapped raw text is one of String, RDoc::Comment or Array of them.
-
-class RDoc::I18n::Text
-
- ##
- # Creates a new i18n supported text for +raw+ text.
-
- def initialize(raw)
- @raw = raw
- end
-
- ##
- # Extracts translation target messages and yields each message.
- #
- # Each yielded message is a Hash. It consists of the followings:
- #
- # :type :: :paragraph
- # :paragraph :: String (The translation target message itself.)
- # :line_no :: Integer (The line number of the :paragraph is started.)
- #
- # The above content may be added in the future.
-
- def extract_messages
- parse do |part|
- case part[:type]
- when :empty_line
- # ignore
- when :paragraph
- yield(part)
- end
- end
- end
-
- # Translates raw text into +locale+.
- def translate(locale)
- translated_text = ''
- parse do |part|
- case part[:type]
- when :paragraph
- translated_text << locale.translate(part[:paragraph])
- when :empty_line
- translated_text << part[:line]
- else
- raise "should not reach here: unexpected type: #{type}"
- end
- end
- translated_text
- end
-
- private
- def parse(&block)
- paragraph = ''
- paragraph_start_line = 0
- line_no = 0
-
- each_line(@raw) do |line|
- line_no += 1
- case line
- when /\A\s*\z/
- if paragraph.empty?
- emit_empty_line_event(line, line_no, &block)
- else
- paragraph << line
- emit_paragraph_event(paragraph, paragraph_start_line, line_no,
- &block)
- paragraph = ''
- end
- else
- paragraph_start_line = line_no if paragraph.empty?
- paragraph << line
- end
- end
-
- unless paragraph.empty?
- emit_paragraph_event(paragraph, paragraph_start_line, line_no, &block)
- end
- end
-
- def each_line(raw, &block)
- case raw
- when RDoc::Comment
- raw.text.each_line(&block)
- when Array
- raw.each do |comment, location|
- each_line(comment, &block)
- end
- else
- raw.each_line(&block)
- end
- end
-
- def emit_empty_line_event(line, line_no)
- part = {
- :type => :empty_line,
- :line => line,
- :line_no => line_no,
- }
- yield(part)
- end
-
- def emit_paragraph_event(paragraph, paragraph_start_line, line_no, &block)
- paragraph_part = {
- :type => :paragraph,
- :line_no => paragraph_start_line,
- }
- match_data = /(\s*)\z/.match(paragraph)
- if match_data
- paragraph_part[:paragraph] = match_data.pre_match
- yield(paragraph_part)
- emit_empty_line_event(match_data[1], line_no, &block)
- else
- paragraph_part[:paragraph] = paragraph
- yield(paragraph_part)
- end
- end
-
-end