class GetText::Tools::MsgInit

Constants

DESCRIPTION_TITLE
EMAIL
FIRST_AUTHOR_KEY
LANGUAGE_KEY
LANGUAGE_TEAM_KEY
LAST_TRANSLATOR_KEY
PLURAL_FORMS
POT_REVISION_DATE_KEY
VERSION
YEAR_KEY

Public Class Methods

run(*arguments) click to toggle source

Create a new .po file from initializing .pot file with user's environment and input. @param [Array<String>] arguments arguments for rmsginit. @return [void]

# File lib/gettext/tools/msginit.rb, line 43
def run(*arguments)
  new.run(*arguments)
end

Public Instance Methods

run(*arguments) click to toggle source

Create .po file from .pot file, user's inputs and metadata. @param [Array] arguments the list of arguments for rmsginit

# File lib/gettext/tools/msginit.rb, line 64
def run(*arguments)
  parse_arguments(*arguments)
  validate

  parser = POParser.new
  parser.ignore_fuzzy = false
  pot = parser.parse_file(@input_file, GetText::PO.new)
  po = replace_pot_header(pot)

  File.open(@output_file, "w") do |f|
    f.puts(po.to_s)
  end
end

Private Instance Methods

guess_full_name() click to toggle source
# File lib/gettext/tools/msginit.rb, line 201
def guess_full_name
  ENV["USERNAME"]
end
guess_mail() click to toggle source
# File lib/gettext/tools/msginit.rb, line 213
def guess_mail
  ENV["EMAIL"]
end
now() click to toggle source
# File lib/gettext/tools/msginit.rb, line 358
def now
  @now ||= Time.now
end
prompt(message, default) click to toggle source
# File lib/gettext/tools/msginit.rb, line 217
def prompt(message, default)
  print(message)
  print(" [#{default}]") if default
  print(": ")

  user_input = $stdin.gets.chomp
  if user_input.empty?
    default
  else
    user_input
  end
end
replace_comment() click to toggle source
# File lib/gettext/tools/msginit.rb, line 237
def replace_comment
  replace_description
  replace_first_author
  replace_copyright_year
  @comment = @comment.gsub(/^fuzzy$/, "")
end
replace_entry() click to toggle source
# File lib/gettext/tools/msginit.rb, line 230
def replace_entry
  replace_last_translator
  replace_pot_revision_date
  replace_language
  replace_plural_forms
end
revision_date() click to toggle source
# File lib/gettext/tools/msginit.rb, line 362
def revision_date
  now.strftime("%Y-%m-%d %H:%M%z")
end
translator_full_name() click to toggle source
# File lib/gettext/tools/msginit.rb, line 193
def translator_full_name
  read_translator_full_name
end
translator_info() click to toggle source
# File lib/gettext/tools/msginit.rb, line 183
def translator_info
  full_name = translator_full_name
  mail = translator_mail
  if not full_name.nil? and not mail.nil?
    "#{full_name} <#{mail}>"
  else
    nil
  end
end
translator_mail() click to toggle source
# File lib/gettext/tools/msginit.rb, line 205
def translator_mail
  read_translator_mail
end
valid_locale?(language_tag) click to toggle source
# File lib/gettext/tools/msginit.rb, line 163
def valid_locale?(language_tag)
  return false if language_tag.instance_of?(Locale::Tag::Irregular)

  Locale::Info.language_code?(language_tag.language)
end
validate() click to toggle source
# File lib/gettext/tools/msginit.rb, line 128
def validate
  if @input_file.nil?
    @input_file = Dir.glob("./*.pot").first
    if @input_file.nil?
      raise(ValidationError,
            _(".pot file does not exist in the current directory."))
    end
  else
    unless File.exist?(@input_file)
      raise(ValidationError,
            _("file '%s' does not exist." % @input_file))
    end
  end

  if @locale.nil?
    language_tag = Locale.current
  else
    language_tag = Locale::Tag.parse(@locale)
  end

  unless valid_locale?(language_tag)
    raise(ValidationError,
          _("Locale '#{language_tag}' is invalid. " +
              "Please check if your specified locale is usable."))
  end
  @locale = language_tag.to_simple.to_s
  @language = language_tag.language

  @output_file ||= "#{@locale}.po"
  if File.exist?(@output_file)
    raise(ValidationError,
          _("file '%s' has already existed." % @output_file))
  end
end
year() click to toggle source
# File lib/gettext/tools/msginit.rb, line 366
def year
  now.year
end