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 44 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 65 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
# File lib/gettext/tools/msginit.rb, line 217 def find_password_entry Etc.getpwuid rescue ArgumentError nil end
# File lib/gettext/tools/msginit.rb, line 202 def guess_full_name full_name = guess_full_name_from_password_entry full_name ||= ENV["USERNAME"] full_name end
# File lib/gettext/tools/msginit.rb, line 208 def guess_full_name_from_password_entry password_entry = find_password_entry return nil if password_entry.nil? full_name = password_entry.gecos.split(/,/).first.strip full_name = nil if full_name.empty? full_name end
# File lib/gettext/tools/msginit.rb, line 231 def guess_mail ENV["EMAIL"] end
# File lib/gettext/tools/msginit.rb, line 376 def now @now ||= Time.now end
# File lib/gettext/tools/msginit.rb, line 235 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 255 def replace_comment replace_description replace_first_author replace_copyright_year @comment = @comment.gsub(/^fuzzy$/, "") end
# File lib/gettext/tools/msginit.rb, line 248 def replace_entry replace_last_translator replace_pot_revision_date replace_language replace_plural_forms end
# File lib/gettext/tools/msginit.rb, line 380 def revision_date now.strftime("%Y-%m-%d %H:%M%z") end
# File lib/gettext/tools/msginit.rb, line 194 def translator_full_name read_translator_full_name end
# File lib/gettext/tools/msginit.rb, line 184 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 223 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 384 def year now.year end