format code
[opensuse:software-o-o.git] / lib / tasks / gettext.rake
1 #
2 # Added for Ruby-GetText-Package
3 #
4
5 desc "Import clean (non-fuzzy) .mo files from lcn checkout"
6 task :makemo do
7   require 'gettext/utils'
8   system("cd $MY_LCN_CHECKOUT && svn up")
9   files = Dir.glob(ENV["MY_LCN_CHECKOUT"] + "/*/po/software-opensuse-org*.po")
10   files.each { |file|
11     lang=File.basename(file, ".po").split('.')[1]
12     ilang=lang
13     #puts "msgfmt -o locale/%s/LC_MESSAGES/software.mo '%s'" % [lang, file]
14     res=''
15     IO.popen( "LC_ALL=C msgfmt --statistics -o messages.mo '%s' 2>&1" % file ) { |f| res=f.gets }
16     #puts "#{lang}: #{res}"
17     # copy only if it contains non-fuzzy translations
18     if res =~ /^\w* translated messages.$/
19       #puts res
20       FileUtils.mkdir_p "locale/" + ilang + "/LC_MESSAGES"
21       puts "take %s into %s" % [lang, ilang]
22       FileUtils.mv "messages.mo", "locale/%s/LC_MESSAGES/software.mo" % ilang
23     else
24       FileUtils.rm "messages.mo"
25     end
26   }
27 end
28
29 desc "Update pot/po files in lcn checkout to match new version."
30 task :updatepo do
31   require 'gettext/utils'
32   files = Dir.glob("{app,lib}/**/*.{rb,rhtml,erb}")
33   GetText.rgettext(files, "tmp.pot")
34   system("cd $MY_LCN_CHECKOUT && svn up")
35   system("msgmerge -o $MY_LCN_CHECKOUT/50-pot/software-opensuse-org.pot $MY_LCN_CHECKOUT/50-pot/software-opensuse-org.pot tmp.pot")
36   FileUtils.rm_f "tmp.pot"
37   system("cd $MY_LCN_CHECKOUT && sh ./50-tools/lcn-merge.sh -p software-opensuse-org.pot -s -n")
38 end