From 7425b66ef88ed3a71f3e2232d014ba7612bbe587 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Tue, 14 Apr 2015 21:29:09 +0200 Subject: [PATCH] build system: recognize translation macros returning Qt strings --- Rakefile | 24 +++++++++++++++++------- src/common/qt.h | 1 + 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Rakefile b/Rakefile index d652c414e..9200a285e 100755 --- a/Rakefile +++ b/Rakefile @@ -76,7 +76,8 @@ def setup_globals $all_headers = $source_directories.collect { |dir| FileList[ "#{dir}/**/*.h", ].to_a }.flatten.sort $all_objects = $all_sources.collect { |file| file.ext('o') } - $gui_ui_files = FileList["src/mkvtoolnix-gui/forms/**/*.ui"].to_a if $build_mkvtoolnix_gui + $gui_ui_files = FileList["src/mkvtoolnix-gui/forms/**/*.ui"].to_a + $gui_ui_h_files = $gui_ui_files.collect { |file| file.ext 'h' } $top_srcdir = c(:top_srcdir) $dependency_dir = "#{$top_srcdir}/rake.d/dependency.d" @@ -267,7 +268,7 @@ end # Qt files rule '.h' => '.ui' do |t| - runq " UIC #{t.source}", "#{c(:UIC)} #{t.sources.join(" ")} > #{t.name}" + runq " UIC #{t.source}", "#{c(:UIC)} -tr QTR #{t.sources.join(" ")} > #{t.name}" end rule '.cpp' => '.qrc' do |t| @@ -302,11 +303,20 @@ file "doc/development.html" => [ "doc/development.md", "doc/pandoc-template.html "--css=pandoc.css --template=doc/pandoc-template.html doc/development.md" end -file "po/mkvtoolnix.pot" => $all_sources + $all_headers + %w{Rakefile} do |t| - sources = t.prerequisites.dup - %w{Rakefile} - runq "XGETTEXT #{t.name}", <<-COMMAND - xgettext --keyword=YT --keyword=Y --keyword=Z --keyword=TIP --keyword=NY:1,2 --keyword=NZ:1,2 --default-domain=mkvtoolnix --from-code=UTF-8 -s --omit-header --boost -o #{t.name} #{sources.join(" ")} - COMMAND +file "po/mkvtoolnix.pot" => $all_sources + $all_headers + $gui_ui_h_files + %w{Rakefile} do |t| + sources = (t.prerequisites.dup - %w{Rakefile}).sort.uniq + + keywords = %w{--keyword=Y --keyword=NY:1,2} # singular & plural forms returning std::string + keywords += %w{--keyword=YT} # singular form returning translatable_string_c + keywords += %w{--keyword=Z --keyword=TIP} # singular form & tooltip formatting returning wxString + keywords += %w{--keyword=QTR} # singular form returning QString, used by uic + keywords += %w{--keyword=QY --keyword=QNY:1,2} # singular & plural forms returning QString + + options = %w{--default-domain=mkvtoolnix --from-code=UTF-8 --sort-output --boost} + options += ["'--msgid-bugs-address=Moritz Bunkus '"] + options += ["'--copyright-holder=Moritz Bunkus '", "--package-name=MKVToolNix", "--package-version=#{c(:PACKAGE_VERSION)}", "--foreign-user"] + + runq "XGETTEXT #{t.name}", "xgettext #{keywords.join(" ")} #{options.join(" ")} -o #{t.name} #{sources.join(" ")}" end task :manpages => $manpages diff --git a/src/common/qt.h b/src/common/qt.h index 0e3ecd466..7c634d0f9 100644 --- a/src/common/qt.h +++ b/src/common/qt.h @@ -22,6 +22,7 @@ #define Q(s) to_qs(s) #define QY(s) to_qs(Y(s)) #define QNY(singular, plural, count) to_qs(NY(singular, plural, count)) +#define QTR(s, dummy) to_qs(Y(s)) inline QString to_qs(char const *source) {