move-translations-to-plugins.rb
1.09 KB
languages = Dir.glob('po/*').reject { |f| f =~ /pot$/ }.map { |f| File.basename(f) }
core_files = `grep '#:' po/noosfero.pot | cut -d ':' -f 2 | sed 's/^\s*//' | grep -v '^plugins' | sort -u`.split.map { |f| [ '-N', f] }.flatten
languages.each do |lang|
lang_plugins_po = "tmp/#{lang}_plugins.po"
system('msggrep', '-v', *core_files, '--output-file', lang_plugins_po, "po/#{lang}/noosfero.po")
Dir.glob('plugins/*').each do |plugindir|
plugin = File.basename(plugindir)
po = File.join(plugindir, 'po', lang, plugin + '.po')
files = []
Dir.glob("#{plugindir}/**/*.{rb,html.erb}").each do |f|
files << '-N' << f
end
system('mkdir', '-p', File.dirname(po))
system('msggrep', *files, '--output-file', po, lang_plugins_po)
if system("msgfmt --statistics -o /dev/null #{po} 2>&1 | grep -q '^0 translated message'")
# empty .po
system('rm', '-f', po)
puts "[#{lang}] #{plugin}: PO file empty, deleted"
else
puts "[#{lang}] #{plugin}"
end
end
system('rm', '-f', lang_plugins_po)
system('find plugins/*/po -type d -empty -delete')
end