Hello community, here is the log from the commit of package update-desktop-files checked in at Thu May 3 23:09:30 CEST 2007. -------- --- update-desktop-files/update-desktop-files.changes 2007-04-29 00:47:41.000000000 +0200 +++ /mounts/work_src_done/NOARCH/update-desktop-files/update-desktop-files.changes 2007-05-02 19:18:57.191943000 +0200 @@ -1,0 +2,6 @@ +Wed May 2 19:18:34 CEST 2007 - coolo@suse.de + +- add support for untranslate (so we can grab upstream translations + reliable) + +------------------------------------------------------------------- New: ---- untranslate.pl ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ update-desktop-files.spec ++++++ --- /var/tmp/diff_new_pack.w15005/_old 2007-05-03 23:04:33.000000000 +0200 +++ /var/tmp/diff_new_pack.w15005/_new 2007-05-03 23:04:34.000000000 +0200 @@ -12,7 +12,7 @@ Name: update-desktop-files Version: 10.3 -Release: 11 +Release: 14 Summary: A Build Tool to Update Desktop Files License: GNU General Public License (GPL) Group: Development/Tools/Building @@ -24,6 +24,7 @@ Source1: map-desktop-category.sh Source2: kappfinder.tar.bz2 Source3: translate.pl +Source4: untranslate.pl # pdb query --filter "needshw:sound" | sed -e "s, ,,g" Source5: packages-sound # pdb query --filter "needshw:3d" | sed -e "s, ,,g" @@ -82,7 +83,7 @@ done fi done -install -m 0644 %SOURCE5 %SOURCE6 %SOURCE3 $RPM_BUILD_ROOT/usr/share/%name/ +install -m 0644 %SOURCE5 %SOURCE6 %SOURCE3 %SOURCE4 $RPM_BUILD_ROOT/usr/share/%name/ mkdir -p $RPM_BUILD_ROOT/usr/share/%name/templates tar xfj %SOURCE2 -C $RPM_BUILD_ROOT/usr/share/%name/templates tar xfj %SOURCE7 -C $RPM_BUILD_ROOT/usr/share/%name/ @@ -122,6 +123,9 @@ /usr/share/locale/*/LC_MESSAGES/*mo %changelog +* Wed May 02 2007 - coolo@suse.de +- add support for untranslate (so we can grab upstream translations + reliable) * Sun Apr 29 2007 - ro@suse.de - ignore return code of validation for now, it causes too much breakage ++++++ desktop-translations.tar.bz2 ++++++ ++++ 983376 lines of diff (skipped) ++++++ suse_update_desktop_file.sh ++++++ --- update-desktop-files/suse_update_desktop_file.sh 2007-04-29 00:46:46.000000000 +0200 +++ /mounts/work_src_done/NOARCH/update-desktop-files/suse_update_desktop_file.sh 2007-05-02 20:36:47.499428000 +0200 @@ -314,9 +314,16 @@ # # Merge translations # + cp $FILE ${FILE}.old for L in /usr/share/update-desktop-files/locale/translations_*; do perl /usr/share/update-desktop-files/translate.pl $L $FILE > ${FILE}_ && mv ${FILE}_ $FILE || exit 1 done + perl /usr/share/update-desktop-files/untranslate.pl $FILE > ${FILE}.new + if ! cmp -s ${FILE}.old {FILE}.new; then + echo "UNTRANSLATE DOES NOT WORK" + diff -u ${FILE}.old {FILE}.new + fi + rm -f ${FILE}.old ${FILE}.new else # # this file will not get translated ++++++ translate.pl ++++++ --- update-desktop-files/translate.pl 2006-06-13 10:46:51.000000000 +0200 +++ /mounts/work_src_done/NOARCH/update-desktop-files/translate.pl 2007-05-02 18:48:25.935064000 +0200 @@ -1,22 +1,37 @@ -$L=$ARGV[0]; +$LANGUAGE=$ARGV[0]; $FILE=$ARGV[1]; use File::Basename; -$L =~ s,/*$,,; -$lang = basename($L); +$LANGUAGE =~ s,/*$,,; +$lang = basename($LANGUAGE); $lang =~ s/translations_//; $file = basename($FILE); my %origs; my %trans; -opendir(DOMS, "$L/en_US/LC_MESSAGES/") || die "opendir $L"; +my $group = ''; +my %added = (); + +opendir(DOMS, "$LANGUAGE/en_US/LC_MESSAGES/") || die "opendir $LANGUAGE"; @mos = grep { /.mo$/ } readdir(DOMS); close DOMS; sub flush_translation() { - foreach $tag ('Name', 'Comment', 'GenericName') + my $list = $added{$group}; + + foreach $tag ('Name', 'Comment', 'GenericName') + { + next if (!defined $trans{$tag}); + $list = "$tag,$lang;$list"; + } + + if ($list) { + print "X-SuSE-added=$list\n"; + } + + foreach $tag ('Name', 'Comment', 'GenericName') { next if (!defined $trans{$tag}); #print "#SUSE-Addition\n"; @@ -27,9 +42,37 @@ } my $flagged = 0; -my $group = ''; + +open(FILE, "$FILE"); +while ( <FILE> ) { + + # new group + if ($_ =~ /^[/ ) + { + my $line = $_; + chomp $line; + $group = $line; + } + + if ($_ =~ /^X-SuSE-added=/) { + if (defined $added{$group}) { + print STDERR "X-SuSE-added twice in $group\n"; + exit(1); + } + chomp $_; + $_ =~ s,^X-SuSE-added=,,; + $added{$group} = $_; + + next; + } +} + +close(FILE); open(FILE, "$FILE"); + +$group = ''; + while ( <FILE> ) { $flagged = 1 if ($_ =~ /X-SuSE-translate=true/ && $group eq '[Desktop Entry]'); @@ -63,7 +106,7 @@ foreach $domain (@mos) { $domain=basename($domain, ".mo"); - $ENV{"TEXTDOMAINDIR"} = $L; + $ENV{"TEXTDOMAINDIR"} = $LANGUAGE; $ENV{"LC_ALL"} = "en_US.UTF-8"; open(GETTEXT, "-|", "gettext", "-d", "$domain", "$text"); $transe=<GETTEXT>; @@ -109,6 +152,9 @@ next; } } + + next if ($_ =~ /^X-SuSE-added=/); + print $_ if ($_); } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org