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
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::Tools::MsgMerge::PoData.new) po = replace_pot_header(pot) File.open(@output_file, "w") do |f| f.puts(po.generate_po) end end
# File lib/gettext/tools/msginit.rb, line 201 def guess_full_name ENV["USERNAME"] end
# File lib/gettext/tools/msginit.rb, line 213 def guess_mail ENV["EMAIL"] end
# File lib/gettext/tools/msginit.rb, line 360 def now @now ||= Time.now end
# 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
# File lib/gettext/tools/msginit.rb, line 237 def replace_comment replace_description replace_first_author replace_copyright_year @comment = @comment.gsub(/#, fuzzy/, "") end
# File lib/gettext/tools/msginit.rb, line 230 def replace_entry replace_last_translator replace_pot_revision_date replace_language replace_plural_forms end
# File lib/gettext/tools/msginit.rb, line 364 def revision_date now.strftime("%Y-%m-%d %H:%M%z") end
# File lib/gettext/tools/msginit.rb, line 193 def translator_full_name read_translator_full_name end
# 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
# File lib/gettext/tools/msginit.rb, line 205 def translator_mail read_translator_mail end
# File lib/gettext/tools/msginit.rb, line 164 def valid_locale?(language_tag) return false if language_tag.instance_of?(Locale::Tag::Irregular) Locale::Info.language_code?(language_tag.language) end
# File lib/gettext/tools/msginit.rb, line 129 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
# File lib/gettext/tools/msginit.rb, line 368 def year now.year end