@@ -, +, @@ --- intltool-merge.in | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) --- a/intltool-merge.in +++ a/intltool-merge.in @@ -1108,13 +1108,20 @@ sub keys_merge_translation { my ($lang) = @_; - if ( ! -d $lang && $MULTIPLE_OUTPUT) + my $outpath = "$OUTFILE"; + + if ($MULTIPLE_OUTPUT) { - mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; + $outpath = "$lang/$outpath"; + + if ( ! -d $lang ) + { + mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; + } } open INPUT, "<${FILE}" or die "Cannot open ${FILE}: $!\n"; - open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; + open OUTPUT, ">$outpath" or die "Cannot open $outpath: $!\n"; binmode (OUTPUT) if $^O eq 'MSWin32'; while () @@ -1159,7 +1166,7 @@ sub keys_merge_translation close OUTPUT; close INPUT; - print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; + print "CREATED $outpath\n" unless $QUIET_ARG; } sub keys_merge_translations @@ -1174,7 +1181,7 @@ sub keys_merge_translations } else { - keys_merge_translation ("."); + keys_merge_translation (); } } --