OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/update-desktop-files?expand=0&rev=31
This commit is contained in:
parent
8702d2d7ef
commit
6d97c7bf49
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:63a037dddf1a9ba2c529e9670518985a5cc674d48f002fed0be8cfeb773b7074
|
||||
size 8939024
|
||||
oid sha256:74974cc270c273cba1ad8ee555db2a82f97bb3ca609c5cd12a64ea32329bdfba
|
||||
size 8949009
|
||||
|
@ -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
|
||||
#
|
||||
|
165
translate.pl
165
translate.pl
@ -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";
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user