OBS User unknown 2008-02-13 18:35:09 +00:00 committed by Git OBS Bridge
parent 8702d2d7ef
commit 6d97c7bf49
6 changed files with 27 additions and 198 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:63a037dddf1a9ba2c529e9670518985a5cc674d48f002fed0be8cfeb773b7074
size 8939024
oid sha256:74974cc270c273cba1ad8ee555db2a82f97bb3ca609c5cd12a64ea32329bdfba
size 8949009

View File

@ -326,14 +326,14 @@ if [ "$I18N" = "yes" ]; then
# 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
/usr/bin/suse-desktop-merge $FILE > ${FILE}_ || exit 1
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
diff -u ${FILE}.old ${FILE}.new
exit 1
fi
mv ${FILE}_ $FILE
rm -f ${FILE}.old ${FILE}.new
else
#

View File

@ -1,165 +0,0 @@
$LANGUAGE=$ARGV[0];
$FILE=$ARGV[1];
use File::Basename;
$LANGUAGE =~ s,/*$,,;
$lang = basename($LANGUAGE);
$lang =~ s/translations_//;
$file = basename($FILE);
my %origs;
my %trans;
my $group = '';
my %added = ();
opendir(DOMS, "$LANGUAGE/en_US/LC_MESSAGES/") || die "opendir $LANGUAGE";
@mos = grep { /\.mo$/ } readdir(DOMS);
close DOMS;
sub flush_translation()
{
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";
print "$tag\[$lang\]=$trans{$tag}\n";
print STDERR "adding '$tag\[$lang\]=$trans{$tag}' to $file\n";
delete $trans{$tag};
}
}
my $flagged = 0;
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]');
# new group
if ($_ =~ /^\[/ )
{
flush_translation();
my $line = $_;
chomp $line;
if (!$flagged && $group eq '[Desktop Entry]') {
print "X-SuSE-translate=true\n";
$flagged = 1;
}
$group = $line;
%origs = ();
%trans = ();
print $_;
next;
}
foreach $tag ('Name', 'Comment', 'GenericName')
{
if ($_ =~ m/^$tag=/ ) {
$text = $_;
chomp($text);
$text =~ s/$tag=//;
$origs{$tag} = $text;
$text = "$tag($file): $text";
foreach $domain (@mos)
{
$domain=basename($domain, ".mo");
$ENV{"TEXTDOMAINDIR"} = $LANGUAGE;
$ENV{"LC_ALL"} = "en_US.UTF-8";
open(GETTEXT, "-|", "gettext", "-d", "$domain", "$text");
$transe=<GETTEXT>;
close(GETTEXT);
next if ($transe eq $text);
next if ($transe eq $origs{$tag});
$trans{$tag} = $transe;
}
next;
}
if ( $_ =~ /^$tag\[$lang\]/)
{
if (! defined $origs{$tag}) {
print STDERR "ERROR: $tag is translated before original. Not supported - patch desktop file $FILE\n";
exit(1);
}
$text = $_;
chomp($text);
$text =~ s/^$tag\[$lang\]=//;
# no reason to act
$ourtrans = $origs{$tag};
$ourtrans = $trans{$tag} if (defined $trans{$tag});
if ($text eq $ourtrans)
{
delete $trans{$tag};
#print "# SUSE Copy\n";
next;
}
print "#SUSE-Overwrite $_";
# if not defined, we prefer the orig
if (defined $trans{$tag})
{
print STDERR "adding '$tag\[$lang\]=$ourtrans' to $file\n";
$_ = "$tag\[$lang\]=$ourtrans\n";
delete $trans{$tag};
} else {
print STDERR "removing '$tag\[$lang\]=$text' from $file\n";
$_ = '';
}
next;
}
}
next if ($_ =~ /^X-SuSE-added=/);
print $_ if ($_);
}
flush_translation();
if (!$flagged) {
print "X-SuSE-translate=true\n";
}

View File

@ -44,7 +44,7 @@ open(FILE, "$FILE");
my $addedtrans = $added{''};
while ( <FILE> ) {
next if ($_ =~ /X-SuSE-translate=true/ && $group eq '[Desktop Entry]');
next if ($_ =~ /X-SuSE-translate=true/ );
next if ($_ =~ /X-SuSE-added=/ );
# new group

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Tue Feb 12 16:16:46 CET 2008 - coolo@suse.de
- don't rely on perl and command line tools, but on fast C++
-------------------------------------------------------------------
Mon Feb 11 10:40:23 CET 2008 - ke@suse.de
- update translations.
-------------------------------------------------------------------
Tue Feb 5 17:25:49 CET 2008 - coolo@suse.de

View File

@ -10,18 +10,19 @@
# norootforbuild
Name: update-desktop-files
Version: 10.3
Release: 88
Release: 92
Summary: A Build Tool to Update Desktop Files
License: GPL v2 or later
Group: Development/Tools/Building
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: desktop-translations = %{version}
Requires: suse-desktop-utils
AutoReqProv: on
Source: suse_update_desktop_file.sh
Source1: map-desktop-category.sh
Source3: translate.pl
Source4: untranslate.pl
Source10: desktop-translations.tar.bz2
Source99: PREPARE_PACKAGE
@ -70,23 +71,18 @@ for lang in *; do
if test -f $lang; then
rm $lang
else
mkdir -p $RPM_BUILD_ROOT/usr/share/%name/locale/translations_$lang/en_US/LC_MESSAGES
mkdir -p $RPM_BUILD_ROOT/usr/share/%name/locale/translations/en_US/LC_MESSAGES
mkdir -p $RPM_BUILD_ROOT/usr/share/locale/$lang/LC_MESSAGES
for f in $lang/*.po; do
msgfmt -o $RPM_BUILD_ROOT/usr/share/locale/$lang/LC_MESSAGES/desktop_translations.mo $f
ln -s /usr/share/locale/$lang/LC_MESSAGES/desktop_translations.mo \
$RPM_BUILD_ROOT/usr/share/%name/locale/translations_$lang/en_US/LC_MESSAGES/`echo $f | sed -e 's#.*/##; s#\.po#.mo#'`
$RPM_BUILD_ROOT/usr/share/%name/locale/translations/en_US/LC_MESSAGES/$lang\_`echo $f | sed -e 's#.*/##; s#\.po#.mo#'`
done
fi
done
install -m 0644 %SOURCE3 $RPM_BUILD_ROOT/usr/share/%name/
install -m 755 %SOURCE4 $RPM_BUILD_ROOT/usr/share/%name/
mkdir -p $RPM_BUILD_ROOT/usr/lib/rpm
install -m 0755 %SOURCE0 %SOURCE1 $RPM_BUILD_ROOT/usr/lib/rpm
%if %suse_version <= 1000
cd $RPM_BUILD_ROOT/usr/lib/rpm
patch -p0 <%PATCH0
%endif
popd
%find_lang desktop_translations
@ -100,24 +96,12 @@ rm -rf $RPM_BUILD_ROOT
%files -f desktop_translations.lang -n desktop-translations
%defattr(-,root,root)
%if %suse_version <= 1000
%dir /usr/share/locale/km
%dir /usr/share/locale/km/LC_MESSAGES
%endif
%if %suse_version <= 1001
%dir /usr/share/locale/fy
%dir /usr/share/locale/fy/LC_MESSAGES
%dir /usr/share/locale/lo
%dir /usr/share/locale/lo/LC_MESSAGES
%dir /usr/share/locale/nds
%dir /usr/share/locale/nds/LC_MESSAGES
%dir /usr/share/locale/se
%dir /usr/share/locale/se/LC_MESSAGES
%dir /usr/share/locale/tt
%dir /usr/share/locale/tt/LC_MESSAGES
%endif
%changelog
* Tue Feb 12 2008 coolo@suse.de
- don't rely on perl and command line tools, but on fast C++
* Mon Feb 11 2008 ke@suse.de
- update translations.
* Tue Feb 05 2008 coolo@suse.de
- do not install it by default (23MB saved)
* Fri Jan 18 2008 ke@suse.de