util/rake/gettextgenerate.rb in alexandria-book-collection-manager-0.7.1 vs util/rake/gettextgenerate.rb in alexandria-book-collection-manager-0.7.2
- old
+ new
@@ -1,5 +1,7 @@
+# frozen_string_literal: true
+
# -*- ruby -*-
#--
# Copyright (C) 2009 Cathal Mc Ginley
#
# This file is part of the Alexandria build system.
@@ -38,13 +40,11 @@
def make_task
desc 'Generate gettext localization files'
task gettext: @generated_files
- if CLOBBER
- @generated_files.each { |gen| CLOBBER << gen }
- end
+ @generated_files.each { |gen| CLOBBER << gen } if CLOBBER
end
def generate_po_files(po_dir, file_glob, dest_dir)
@po_dir = po_dir
@po_files_glob = file_glob
@@ -54,12 +54,12 @@
# create MO files
rule(/\.mo$/ => [->(dest) { source_file(dest) }]) do |t|
dest_dir = File.dirname(t.name)
FileUtils.makedirs(dest_dir) unless FileTest.exists?(dest_dir)
puts "Generating #{t.name}"
- system("msgfmt #{t.source} -o #{t.name}")
- raise "msgfmt failed for #{t.source}" if $CHILD_STATUS.nonzero?
+ result = system("msgfmt #{t.source} -o #{t.name}")
+ raise "msgfmt failed for #{t.source}" unless result
end
mo_files.each { |mo| @generated_files << mo }
end
def po_files
@@ -67,12 +67,14 @@
end
def generate_desktop(infile, outfile)
@generated_files << outfile
file outfile => [infile, *po_files] do |_f|
- unless `intltool-merge --version`
- raise Exception, 'Need to install intltool'
+ begin
+ `intltool-merge --version`
+ rescue Errno::ENOENT
+ raise 'Need to install intltool'
end
system("intltool-merge -d #{@po_dir} #{infile} #{outfile}")
end
end
@@ -95,62 +97,5 @@
def source_file(dest_file)
dest_file =~ @mo_files_regex
po_file_for(Regexp.last_match[1])
end
end
-
-# class GettextConfig < BuildConfig
-# attr_accessor :po_dir, :po_files_glob
-# attr_accessor :mo_dir, :mo_files_regex
-# def initialize(build)
-# super(build)
-# @po_dir = 'po'
-# @po_files_glob = "#{@po_dir}/*.po"
-# @mo_dir = 'data/locale'
-# @mo_files_regex = /.*\/(.+)\/LC_MESSAGES\/.+\.mo/
-# end
-# def po_files
-# FileList[po_files_glob]
-# end
-# def po_file_for(locale)
-# "#{po_dir}/#{locale}.po"
-# end
-# def locales
-# po_files.map { |po| File.basename(po).split('.')[0] }
-# end
-# def mo_files
-# locales.map { |loc| mo_file_for(loc) }
-# end
-# def mo_file_for(locale)
-# "#{mo_dir}/#{locale}/LC_MESSAGES/#{build.name}.mo"
-# end
-# def source_file(dest_file)
-# dest_file =~ mo_files_regex
-# po_file_for($1)
-# end
-# end
-
-# def define_gettext_tasks
-# # extract translations from PO files into other files
-# file files.desktop => ["#{files.desktop}.in",
-# *@gettext.po_files] do |f|
-# raise "Need to install intltool" unless system("intltool-merge -d #{@gettext.po_dir} #{f.name}.in #{f.name}")
-# end
-
-# # create MO files
-# rule( /\.mo$/ => [ lambda { |dest| @gettext.source_file(dest) }]) do |t|
-# dest_dir = File.dirname(t.name)
-# FileUtils.makedirs(dest_dir) unless FileTest.exists?(dest_dir)
-# puts "Generating #{t.name}"
-# system("msgfmt #{t.source} -o #{t.name}")
-# raise "msgfmt failed for #{t.source}" if $? != 0
-# end
-
-# desc "Generate gettext localization files"
-# task :gettext => [files.desktop, *@gettext.mo_files]
-
-# task :clobber_gettext do
-# FileUtils.rm_f(files.desktop)
-# FileUtils.rm_rf(@gettext.mo_dir)
-# end
-# task :clobber => [:clobber_gettext]
-# end