From f80c53df6b01708857fd77109fe9de1781ba69dd Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Thu, 7 Apr 2011 02:31:18 +0300 Subject: [PATCH 1/1] Make poupdate work correctly without a i18n directory --- bin/poupdate | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/bin/poupdate b/bin/poupdate index 06ccdf2..5a6fa17 100755 --- a/bin/poupdate +++ b/bin/poupdate @@ -318,6 +318,11 @@ if __name__ == '__main__': transl = translations.Translations.from_parsed_options(options) gettext_directory = options.gettext_directory + + if (options.pots or options.pos) and not os.path.exists(gettext_directory): + print "Error: Gettext directory doesn't exist. Skipping pot/po creation" + options.pots = options.pos = False + if options.pots: if options.verbose: print 'Creating pots in', gettext_directory @@ -337,27 +342,28 @@ if __name__ == '__main__': for lang, stream in csv_streams.items(): streams[lang].append(stream) - # Merge in the PO files - if options.langs: - langs = options.langs.split(',') - else: - langs = all_langs(gettext_directory) - - for lang in langs: - language_directory = os.path.join(gettext_directory, lang) - if options.verbose: - print 'Merging translations for %s in %s' % (lang, language_directory) - pos = merge_pos(transl, lang, language_directory) + if os.path.exists(gettext_directory): + # Merge in the PO files + if options.langs: + langs = options.langs.split(',') + else: + langs = all_langs(gettext_directory) - if options.pos: + for lang in langs: + language_directory = os.path.join(gettext_directory, lang) if options.verbose: - print 'Writing POs for %s' % lang - save_pos(pos, lang, gettext_directory=gettext_directory) + print 'Merging translations for %s in %s' % (lang, language_directory) + pos = merge_pos(transl, lang, language_directory) - if options.verbose: - print_stats(pos) + if options.pos: + if options.verbose: + print 'Writing POs for %s' % lang + save_pos(pos, lang, gettext_directory=gettext_directory) + + if options.verbose: + print_stats(pos) - streams[lang].append(yield_po_messages(pos)) + streams[lang].append(yield_po_messages(pos)) if options.csv: for lang, lang_streams in streams.items(): -- 2.7.4